metrics-core: Fix race condition in InstrumentedThreadFactoryTest.
adding third part component for Apache Camel
formatting fixes
Merge pull request #562 from sfosdal/patch-1

Added third party component for Apache Camel
Merge pull request #560 from udoprog/master

metrics-core: Fix race condition in InstrumentedThreadFactoryTest.
Introduce MetricName type to encapsulate more information about metrics.

This is a large refactoring meant to change the way metric names are
represented to better suit a wide variety of backends.

Quite a few metric backend systems are starting to use a general concept of
'tags' which is a step back from having too encode information in the (string)
names of the metrics*.

* KairosDB (http://code.google.com/p/kairosdb/), OpenTSDB
(http://opentsdb.net/overview.html)

Tags are meant to allow for natural grouping of similar timeseries allowing for
the ability to easily correlate freely between the timeseries that incorporate
them.

For example, take the following two timeseries.

* example.com.interface.traffic.eth0.in
* example.com.interface.traffic.eth0.out

Using tags, these would be represented as;

* interface.traffic {host=example.com, interface=eth0, direction=in}
* interface.traffic {host=example.com, interface=eth0, direction=out}