implemented reporting of profiler data via scribe

@Wikia/platform-team pls review
> Hi, I totally agree your point and I share it. What makes hard for me to follow it is that the current architecture breaks it by merging at least two responsibilities: collecting data and reporting/sending them.

We should always strive to reduce the net [WTF/m](http://www.osnews.com/story/19266/WTFs_m) with new code in the app. One way to do that here would be to split out the destination sink into separate modules and then inject that into a new wrapper that extends `ProfilerSimple`. Something like the following.

```PHP
interface ProfilerDataSink {
   public function sendDataToSink( $params );
}

class ProfilerDataSink extends ProfilerSimple {

        private $profilerDataSink = null;

        public function logData() {
                $payload = $this->buildProfilerPayload();
                $this->getSink()->sendDataToSink( $payload );
        }

        public function setSink( \ProfilerDataSink $sink ) {
                $this->profilerDataSink = $sink;
                return $this;
        }

        public function getSink() {
                return $this->profilerDataSink;
        }

}

class UDPProfilerSink implements ProfilerDataSink {
        public function sendDataToSink( $params ) {
                // send to UDP
        }
}

class ScribeProfilerSink implements ProfilerDataSink {
        public function sendDataToSink( $params ) {
                // send to Scribe; use scribe abstraction that already exists somewhere to send?
        }
}

// once you know the dependencies are available
$profilerDataSink = new ProfilerDataSink();
$profilerDataSink->setSink( new ScribeProfilerSink() );
Profiler::setInstance( $profilerDataSink );
```

This should give us three things- it decouples the data marshaling out of the app from the profiler, it allows for concrete sinks to be injected at run time, and it can be tested. The important one I think is allowing the sinks to be injected at run time when we know that the dependencies are loaded. This will significantly reduce the complexity of the code by removing the `if/else` around class or method existence.

The naming may need some improvement. Should it be `ProfilerWithDataSink`? I'm not sure.

Does that help?