New extended API extension with window enum

Decided to kick off a new extended API extension with mubix and
kernelsmith to include some more advanced enumeration stuff. The goal of
this extension is to take stuff that wouldn't be part of the std api but
is rather useful for enumeration of a target once meterpreter has been
established.

This commit kicks things off with enumeration of top level windows on the
current desktop.
Free up user32 when we're done with it
Add service_enum to the ext_server_extapi extension

This commit adds the ability to enumerate services on the target machine,
showing the PID, the service name, the display name and an indication of
the service's ability to interact with the desktop.

Some other small code tidies were done too.
Add service_query to ext_server_extapi

Once the user has queried the list of services they can now use the
`service_query` function to get more detail about a specific service.
Add child window enumeration and flag

Enumeration of child windows is now possible if the appropriate TLV is
included in the request message.

Inclusion of "unknown" windows is also possible now, again if the
appropriate TLV is included.
Add clipboard text get/set functionality

This commit adds the beginnings of clipboard munging support. Getting and
setting of text-based data is supported. Over time, more formats will be
supported.
Add support for CF_HDROP to clipboard handling

Lists of files can now be downloaded from the clipboard. Downloading of
the files themselves is something that should be done by MSF as that's
already built in.
Add size (bytes) of the files on the clipboard
Implement CF_DIB support

The clipboard code now supports the `CF_DIB` format on the clipboard. When
found, it takes the data and uses GDI+ to convert it into a JPEG. GDI+ was
used because:

* It's on every Windows machine from XP SP0 onwards (Win2k doesn't work).
* It requires linking to a small gdiplus.lib instead of a massive jpeg
  library.
* It's a really easy interface to use that interops easily with the
  Windows bitmap header information structures.

I think it'd be worth considering this approach for the other screenshot
applications as well, as it'd reduce the jpeg lib dependency and simplify
the codebase.
Merge branch 'vs2013' into ext_server_extapi
Update to VS2013

This brings things up to date with the VS2013 main line.
Adjust format to fit with default VS 2013 rules

VS 2013 appears to have built-in formatting for C++, so this commit tidies
up the code a bit to fit within those rules.

It also removes a few warnings which the new compiler has shown.
Add Doxygen documnetation to extapi
Add support for optional image download

Change includes fixes which allow for images to be downloaded optionally.
The user can specify -d to get the image. Image dimensions are shown as
well.
Proper DIB offset calculation

This fixes the issue where the calculation for the offset of the image
data was incorrect. Instead of just looking at the first byte past the end
of the BITMAPINFOHEADER we now correctly calculate the offset past the
color palette and begin reading the image there. This stops the problems
where sometimes the image looked like it had been shifted, or other cases
where the image colors went retro.
Remove final warning from the build
Last tiday of extapi project file
Final fixes to previous mistake
Thanks to @brandont-r7 for catching the last of the issues
fix typo in comment