Iterate all the things

* every object type implements HasId (can call getId():String).
* every container implements ContainerMeta<HasId>. This facilitates generic list calls in BaseClient.
* paints gson container and object classes with appropriate interfaces (they already implicitly implemented).
* adjustments to curator and archaius bindings.
* demonstates how to do this for ServiceClient
    * still needs to be done for ConfigurationClient and EventClient.
* using guava for iteration would have been overkill.
Make getMetadata method private and expose other more higher level methods.
Merge branch 'master' into list_iterators
Utilize metadata
* fix NPE in getting marker/next_marker
* avoid initial double-page fetch.
* EventsContainer extends Container
ConfigurationClient and EventsClient use the iterator.
fix merge conflict
Merge branch 'simplify_server_events' into merged_list_iterators_and_simplify_server_events
Merge branch 'master' into list_iterators
remove old comment.
consistent variable name.
Use nextMarker instead of calculating based on last observed element.
* Rename PaginationOptions -> MethodOptions.
* Make 'limit' and 'marker' standard options.
* Modify pagination method to respect constant limit, but let nextMarker change.
* realized that `limit` really means `pageSize` and documented that idiosyncratic behavior.
Merge pull request #33 from racker/list_iterators

Iterator all the things