Code tidy, doxygen set up and beginnings of documentation

This commit contains a few things:

* Addition of doxygen tools.
* Modification of `make.bat` to allow for `make docs`, which generates doxygen output to the `docs` folder.
* Modification of the .gitignore file to ignore the doxygen output.
* Modification of `make.bat` to attempt to look for a VS 2012 installation automatically.
* Refactor/code tidy of the Kitrap0d stuff.
* Documentation of a few files, including `base.*` and `core.*`
* Tidying up of the command declarations to hide some of the implementation detail and make them a little cleaner to read.
* Refactoring the `TLV_*` declarations so that they can be documented (and are way easier to read).

This should all build cleanly and not interfere with anything.

I wanted to get this PR going now before it got too big. Over time, documentation will be added by file pair (eg. `remote.h` and `remote.c`) so that PRs don't get too big.