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
Nested ternaries are evil. They are difficult to read and error prone. This [`setAttribute`](https://github.com/Wikia/app/pull/3966#discussion_r14201106) pattern keeps coming up. Let's create a function that encapsulates the tiers and sets the value accordingly.

Something like
```PHP
public static function setAttributeByDistributionOffset( $observationCounter, $lowerBound, $middleBound ) {
   if ( $observationCounter < $lowerBound ) {
     TransactionTracer::setAttribute( TransactionTracer::PARAM_SIZE_CATEGORY, TransactionTracer::SIZE_CATEGORY_SIMPLE );
   } elseif ( $observationCounter < $middleBound ) {
     TransactionTracer::setAttribute( TransactionTracer::PARAM_SIZE_CATEGORY, TransactionTracer::SIZE_CATEGORY_AVERAGE );
   } else {
     TransactionTracer::setAttribute( TransactionTracer::PARAM_SIZE_CATEGORY, TransactionTracer::SIZE_CATEGORY_COMPLEX );
   }
}
```

Then

```PHP
TransactionTracer::setAttributeByDistributionOffset( $this->countComments, 1,  self::DEFAULT_MESSAGES_PER_PAGE + 1 );
```

/cc @jcellary