Commit of all changes from old Reddwarf repo.

This commit contains numerous changes which were made when Sneaky Pete
was moved into the old Reddwarf repository.
Getting rid of the include directory.
Made Sneaky Pete work with RDL as far as prepare call and most user ops.

* Ripped out nova::db::api stuff, which mimicked Nova API in Diablo.
* Added nova::guest::HeartBeat class which works with RDLs slimmed down db.
* Added "guest_id" property to FlagValues class.
* Removed guest_ethernet_device and preset_instance_id props from FlagValues.
* Fixed MySqlAppStatus to work with RDL. Mostly changed db names, and made it handle the "NEW" status.
* Added == operator to IsoDateTime (needed it for a HeartBeat unit test...).
* Changed nova::rpc::Receiver to send ack in the new nicer way.
* Log out Sneaky Pete intro flag to program start up to make it easier to see in the logs.
Fixed a bug that lead to an infinite loop, and another involving weird my.cnf files.

* Added a new Logging level, TRACE, for LOC I can't bear to part with but that no one really wants to see.
* Clear string when grabbing user name and password from my.cnf in case the file has both fields listed more than once.
* I had stupidly not checked the fail() property of the input file, leading to an infinite loop when the file was unreadable. Fixed.
Changed list_databases and list_users to work with pagination.

* Added "get_positive_int" method to JsonObject.
* Changed MySqlAdmin functions.
* Changed message handler code.
Changed the logger to display the thread of each message.
Fixed a test regex for logging tests
Adding "include_marker" property to cause list RPC calls to include the marker rather than exclude it.

* Added new get_bool and get_optional_bool method to JsonObject class.
Added 'make' to the list of install packages so the build doesnt fail
Now trimming spaces in the flags config reader.
Cleaned up the program entry point.

* Split the entry point into a few pieces to make it easier to parse.
* A bug in release mode caused the logging system to shutdown before any error messages were printed, meaning whenever an initialization error happened all anyone saw was that the logging system wasn't initialized... oops. Fixed.
* Changed default value of control_exchange to "reddwarf."
Set the service status to FAILED if the MySQL install failed.

* Added some comments to the hard to follow MySqlAppStatus tests.
No longer updating the guest config package during update.

* Removing the apt_guest_config_package flag value.
adding get hwinfo call to get memory and cpu info
Fixing the git directory for version identification
Attempting to fix initialize.sh script in CI.

* Script now exits on errors.
* Added git submodule stuff for building rabbitmq-c.
Resetting to a specific version of librabbit
moving to the rabbitmq github repos for misc stuff
Updating the build scripts to suit our new environment
Fixing a case where rabbit connections aren't closed correctly.