Add templates again so they can be used by QtCreator.
Merge pull request #53 from ahmedcharles/templates

Add templates again so they can be used by QtCreator.
Rearrange includes to improve compile times.

This also allows for memory leak checking on MSVC by having include
surrounding Qt headers, which break if you have a macro define new
to be something which tracks line information.