Merge pull request #17 from pthedinger/master

Updating to master
Merge pull request #83 from pthedinger/master

Adding command-line TAB completion for command names and GUIDs (osx/linux)
Adds support for MEMORY_OBJECT descriptor type
Merge pull request #84 from ajwlucas/master

Adds support for MEMORY_OBJECT descriptor type
Adds firmware version string to list command display
Adds REBOOT command support to the lib and CLI
Adds START_OPERATION and OPERATION_STATUS commands.

Used by operations on the MEMORY_OBJECT_DESCRIPTOR 
for firmware upgrade.
Adds function to re-enumerate an end station's descriptors
Fixes ADP to update its state every ADP ENTITY_AVAILABLE

Now the flags and available_index can be checked
Now respects GENERAL_CONTROLLER_IGNORE and ENTITY_NOT_READY flags
Re-enumerate if the model ID or available index indicates change
Send an ENTITY_DISCOVER on controller start-up

Enumeration could previously be delayed until the end station
sent its first ENTITY_AVAILABLE
Adds entity firmware upgrade command to CLI
Removes extra whitespace
Merge pull request #85 from ajwlucas/master

Updates to support firmware upgrade and other minor improvements
move MSVC getopt module to cmdline/src/msvc - where it is used
MSVC build updates. CLI remains broken.
Merge pull request #86 from andrew-elder/master

MSVC updates
Fix signed/unsigned comparison warnings.
Fix 'potentially unititialized local pointer' errors on Windows.