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
This function is too big. I also think the nested `if/else` nested within a `switch` statement is a [code smell](http://c2.com/cgi/wiki?SwitchStatementsSmell). This seems like a good candidate for polymorphism which would allow you to add more types without modifying the switch statement.

The complexity of the class suggests that static methods may not be appropriate. It's adding enough new functionality that I think it should be tested and it's difficult to test in this it's current form.