Feature logging

@rynowak @yishaigalatzer 

I haven't rebased to the newest stuff yet.
ReflectedActionConstraints to text and attribute routing still need to be considered.

Sample graph view
![image](https://cloud.githubusercontent.com/assets/3495894/3726525/0bf25396-1694-11e4-9c1b-cb32b48c0008.png)

Sample text view
![image](https://cloud.githubusercontent.com/assets/3495894/3726575/a0a81f20-1694-11e4-9568-59e4e77a7722.png)

don't manually throw `ArgumentNullException` in our code. use `[NotNull]` for parameters on public methods, `Contract.Assert(descriptor != null)` in private methods.