Add prometheus types/descriptions to dynamic metrics.
This commit adds optional types and descriptions to dynamic metrics, so
they can be written to the prometheus metrics web endpoint in comments.
Adds `initMetric` function to Lua, which is similar to getMetric, but
has two additional arguments: the metric's prometheus type, and the
metric's description. Metrics that are first declared with `getMetric`
will have no type or description, and subsequent calls to `initMetric`
will have no effect (the same way that calling `getMetric` multiple
times with different prometheus metric names will have no effect).