Add GetOrRegister method for threadsafe metric registration

Advantages over existing metric creation and registration:

* A single statement creates and registers a metric.
* Unused metrics will now be a compiler error (previously all metrics
  would be "used" at least once when registering them).
* The only threadsafe way to dynamically get-or-create metrics without
  wrapping the existing interface.
* Able to get/create metrics locally instead using global variables.
Factor out locked registration and alphabetize.
GetOrRegister for the DefaultRegistry.
New GetOrRegisterCounter API.
Add NewRegistered* for each standard metric.
(#25) Add GetOrRegister* for reach standard metric.
(#25) Get NewRegistered* in on the tests.