Code clean-up and tweaks

Huge pull request that doesn't actually _do_ very much... The gist of it is;

- Updating the gitignore
- Adding VS2013 support to the solutions, without breaking support for VS2010 and VS2012
- Code Cleanup (read the commit message to see exactly what was done).

All tests pass.