separate fog facade from logic that should be relocated and tested
throw on non-found vdc and catalog names
formatting tidy and clarity add
Restructure Vapp class to be immutable

* Improve vapp_spec readability and highlight public Class and Instance interface
* Remove now-unneccessary reload() method, since we no longer keep state to reload
* Move methods that find or create Vapps into the class, returning vapp instances

The main purpose of this commit is to remove any mutable state from the class, specifically the handling of @vcloud_attributes.

Previously, we were in effect caching the output of get_vapp into @vcloud_attributes, but not really handling the fact that the state of the Vapp could change underneath us. Notionally the reload() method allowed us to update our inner state, but not consistently.

Also have removed @fog_interface from the state, since this hold onto Fog objects and (tbc) does not handle the case when a session token expires (Fog may do this automatically though)

In the process, have also been pushed the methods that find and create Vapps into the class, effectively as factory methods. They should definitely not be instance methods, but arguably can be later farmed out into a separate vapp factory class.
add test confirming @id stored
remove "unncessary" no-arg tests
improve tests to confirm Query receives correct input
duplicate assert issue resolved
remove tests against "language features" as per Sneha comment on vapp_spec
ensure we store the @id
improve get_by_name tests to check Query input
Merge pull request #82 from alphagov/vapp_reorg2

Restructure Vapp class to be immutable
Merge pull request #76 from alphagov/catch_and_throw_errors

Throw errors on unmatched VDC and Catalog names + ability to Test around Service layer
Merge branch 'master' into add_vdc_class