[WIP] Changes to Appliance class + others

* clone_domain script now reports back if it fails at each step to let
  the new Appliance class builder know if it failed.
* version did not know how to asked if "master" was in "5.2" which
  caused big problems in the appliance version checking code. This has
  now been rectified.
* Appliance has many new changes:
  * Appliance.configure() used to perform custom configuration, this has
    been replaced with an Automatic configurator. However, if any args
    are passed to the .configure() method, it hands off to a
    custom_configure() method, which replicates the old behaviour.
  * does_vm_exist() method is added to aid in deletion.
  * precompile_assets, loosen_pgsql, clone_domain, deploy_merkyl,
    update_rhel methods have been added which interact with the scripts.
  * fix_ntp_clock has been replaced with a version that runs the
    external script. This was due to a significant slowness encountered
    with the internal operations of the fix_ntp_clock method. If the
    "newer" ntp fix is required, this should be tested and ported to the
    external script.
I'd be fine calling this ip, ip_a, or the complete ip_appliance, but the attr should not be the same name as the class that contains it.