Introduction of TransactionTracer

TransactionTracer is designed to keep track of request metadata and most important metrics that influenced its performance in the most significant way.

@Wikia/platform-team Please review (I recreated the pull request to make a clean start as I added a bunch of changes)

Coming soon (in separate pull requests):
* log key attributes along with profilers data
* log key attributes along with RUM metrics
Yeah, I completely agree that this code is not the perfect one, indeed it looks bad. That's why each and every if/switch has an own comment to help understanding the flow.

However the current architecture and control flow of this class makes this code execute every time a transaction attribute is set. Today it can execute 5 times per every request on average. I anticipate that number may dynamically grow in the future. Function/method calls are quite expensive in PHP and that's the only reason my first thought for implementation is to sacrifice a bit of code readability for the speed of execution. What do you think?