while working on chef role additions to commission_vm, noticed lots of easy opportunity for consolidating ugly duplicate code logic

In the VM Commission "host template" controller (App.CommissionVmController):

* buildHostSpecs now enumerates over a literal array of host attribute strings and populates the App.CommissionVmSpecs array controller indices as appropriate
* host attribute distinction detection in both controllers is now generalized: isDistinct() in App.CommissionVmController and protectDistinct() in App.CommissionVmSpecsController