QueryProfilerDecorator to replace QueryData

## Summary
The change does the exact same thing as [1] (this is also why the #ask,
#show tests didn't need any alteration besides the constructor) but it
injects a Subobject instead of a Title object (which makes it independent
from a MW data object) but more importantly it now uses a Decorator [2]
for construction meaning that an additional profiling item such as
duration would add a new component instead of changing the content of
the original class and with it leaving existing tests untouched.

Splitting the class lowers the SRP violation from [1] due to the
elimination of multi-object injection that persisted before
making it possible for a decorator component to handle only a specific
object (QueryFormat, QueryDescription etc.).

## Follow-up
* Move classes into SMW\Query\Profiler namespace