Add doxygen, begin documenting, kitrap0d tidy

* Added the doxygen binaries and configuration.
* Added a `make docs` which generates documentation to the `docs` folder.
* Added some documentation to various areas of the source that I was
  working with. Over time I'll be adding more and more rather than trying
  to do it all in one hit.
* Refactored the kitrap0d code a bit to try to reduce code size.
Fix railgun multi functionality

The main issue with things being broken was because the calling
convention was not defaulting to "stdapi" and hence the call would
fail. Adding the default fixed it.

While fixing this, I brought the mulit-call functionality up to speed
with the error message functionality, so the calls all return the
properly formatted error message.
More documnetation work
Even more docs
Land #28 OJ's Fix railgun multi call functionality
Update the build icon URL

Now that @bturner-r7 has got the CI going on metasploit.com the build
icon needs to point to the new server.
Documented base.* and core.*

Big job, this documentation lark. Also modified the prototype the
packet_is_tlv_null_terminated function, which used to take a Packet
instance as well as the TLV, but never used the packet in its
implementation.
Correct links for source and framework
Land #30, update README.md
Update .gitignore to avoid conflict
Remove strcpy calls, proper use of strncpy/strcpy_s

Replaced all usages of `strcpy` with `strncpy` or `strcpy_s`.

Make sure that all usages of `strncpy` specified the correct buffer size.
Resolve PR #31 conflict

Conflicts:
	.gitignore
Merging https://github.com/OJ/meterpreter/pull/1
Fix exclude config to ignore unnecessary content

Updated to use `EXCLUDE_PATTERNS` instead of `EXCLUDE_PATHS`. This
properly excludes the source of the libraries we use and also the
generated output on POSIX.

Thanks again to @jlee-r7 for the catch.
Land #31, doxygen
Land #29, new 'bare' extension

Replaces 'boiler'
Whitespace
Fix railgun crash on XP SP3

Fix issue where the railgun API was relyling on FormatMessage returning a
valid pointer when the error is `ERROR_SUCCESS`. On some platforms, such
as XP SP3, the function would return a NULL pointer for this case. This
fix makes sure that in the case of a NULL pointer the error message is set
to a value that matches that found on other platforms.

[FixRM 8505]
Land #33, Fix XP SP3 Railgun Crashes
Better errors when formatmessage fails in railgun

Previous change stopped the session from crashing on NULL, but this change
actually has more realistic messages coming back intead of always
indicating that things happened correctly. It's still up to the caller to
check the return code to make sure it's ok