Auto aliasing for Queries

Automatic aliasing of query results based on a user-definable, optional `QueryAliasFactory` present on the classpath. This is a first step towards minimising the necessary configuration per application when using `jmxtrans-agent`.

Example configuration from `jmxtrans-agent.xml`
```
<query objectName="metrics:name=poc.CollectionResource.putCollection" attribute="Count" />
<resultAliasFactory class="com.our.organisation.jmxtrans.DomainSpecificQueryAliasFactory" />
```
The `resultAlias` is constructed by calling the factory later. If no `QueryAliasFactory` is provided a `DefaultQueryAliasFactory` is used to not break the expected behaviour of the current `jmxtrans-agent` version.