Added some simple functionality to the profiler:
* Profiler no longer implements runnable, to prevent the temptation of a user from trying to run it themselves
* Profiler now accepts an executor in the start function if you wish to prevent it from starting it's own thread (possibly if you wanted to start/stop the executor frequently)
* Profiler has added functionality to query if it is currently running
* Profiler has the ability to be extended a bit easier

And the new changes are covered under the unit tests
Fix for missing javadoc comment
Added a new varriant of the profiler, where you can explicitly control which threads are being profiled
More unit test coverage around the profiler.