Inline variant of withTraceContext using macros.

As the title says :)

Tests pass. Traced PingPong and Function0 seems to have gone the way of the Dodo.
Hopefully, this should help with https://github.com/kamon-io/Kamon/issues/12

Attaching a couple of captures: First is a PingPong trace, second is the same trace using macros.

![pingpong-trace](https://cloud.githubusercontent.com/assets/6013514/3389293/2964d0a4-fc93-11e3-8762-2cf47f783849.png)
![pingpong-trace-inline](https://cloud.githubusercontent.com/assets/6013514/3389294/296504f2-fc93-11e3-8ac5-5257c24c9ad1.png)

Originally, I though that since macros cannot be defined and invoked in the same compilation unit, the way to remedy this was to place it in a separate module since all the "cool kids" were doing it.
But then, Miles Sabin, who was cool before it was cool, put everything in one module in shapeless. So, given that proof, I'll refactor this into kamon-core.