allow multiple match rules per target type, and more

* restructure how targets are configured, so you can have multiple
  (not necessarily related) configs all yielding a target of a
  target_type, say "gauge".  no explicit extra datastructures for
  target_types, which are now just words like gauge, count, etc.
* .. which makes it trivial and more simple to define multiple targets
  from a given matching metric.  which allows a nice code cleanup:
  * merge generate_targets' config logic into to configure_target.
    none of these functions needs to be overridden.
  * configure_target only needs to return one target unlike generate_targets
  * configure option specifying one or more (often lambda) functions to
    dynamically further configure a target, but it comes with an
    overridable default one.
* put default target options merging in a central place.
make sure no other things with "load" in em show up