Large refactoring.

* Added descriptive comments to major classes.
* Added Label class and moved initialization code of <source> elements
  from Agent to Label.
* Renamed Collector#short_circuit to #match to simplify EventRouter.
* Updated coding style.
  * ':key => value' to 'key: value'
  * 'rescue' with '$!' to 'rescue => e'
  * 'require_relative' to 'require'
added 'type' plugins and moved Configurable.register_type to PluginRegistry#register_type
Agent has its own log level separated from the global logger #200