[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've always wondered...why is this private? Can we get rid of that underscore and lazycache it?