Smoketest now able to modify setting without rebuilding iso

Weell, i'm not sure if this is proper solution, but at least it work.
The reason of this fix is that we need to be able to test a lot of feature sets using same iso, without some hack with tons of modify-json's and rebuilding iso for each case.

Now it is possible using something like:
./test_framework/test_crowbar.sh xtra-arg all_pfs tempest use-iso 1.iso
./test_framework/test_crowbar.sh xtra-arg quantum_gre xtra-arg tempest_pfs tempest use-iso 1.iso
and so on.

The list of pre-defined settings is extendable, and it consist of hash with name of barclamp as key with values of settings wich will be overrided as key => value


Like
  when 'all_pfs'
    preferences={ "*" => {
      "use_gitrepo" => true,
      "use_virtualenv" => true,
      "use_pip_cache" => true,
      "use_gitbarclamp" => true
      },
      "tempest" => {
       "use_virtualenv" => true,
       "use_pfs" => false
      } }
  when 'quantum_gre'
     preferences={"quantum" => {
       "networking_mode" => "gre"
     } }
  when 'tempest_pfs'
     preferences={"tempest" => {
       "use_virtualenv" => true,
       "use_pfs" => false
     } }