Throw errors on unmatched VDC and Catalog names + ability to Test around Service layer

* Service layer has been restructured to allow the testing of the logic it contains and also to highlight logic that is untested and needs to be covered or to be moved elsewhere.

* Fixed bugs (and added tests) where an unmatched VDC or Catalog name would result in a nil class error.

@annashipman - can you review please