EnvironTag from the API connection is accessible to all facades

Refactoring a few places to allow easier access to the current
API connection's environment tag, and a few drive-by fixes:
 - HighAvailability API's NewClient() no longer needs EnvironTag
   as a (string) argument, but discovers it via the connection.
 - MetricsManager API refactored slightly to use an AuthFunc to
   verify any given tags are valid environment tags and match
   the current environment.
 - api.Uniter() factory method changed to validate the currently
   authenticated user's tag is indeed a names.UnitTag, rather
   than possibly panicking when it's not.
 - api.Info.EnvironTag is now names.EnvironTag, rather than
   a names.Tag; tests changed accordingly.
 - Minor drive-by fixes to imports ordering and doc comments.