Give context aware message if markup reuse fails

This change calculates the longest common substring between the server side rendered markup and the client markup and uses that to give context about failure to the developer.

The context is an extra message with comparison of where server and client markup started to differ: 

![image](https://cloud.githubusercontent.com/assets/35656/5238366/ed1b1c0a-78ae-11e4-810d-67afe4ca9817.png)

All feedback is appreciated.
oh also, put back the attribute when you are done, ideally we should leave the dom back in the state it was before