Adding password handling (WIP)

This is a bit of a work in progress. Most things work, but the actual connection
between model and UI element isn't totally functional, mostly because I'm not
totally clear on how to convince the form/controller code to treat the ActiveModel
bits as real.

Bits I was trying and should either be fixed or gutted:
- steps_controller diff and related attributes= method (this is probably the
  wrong approach, but it's the last thing I tried
- any definition of [] methods in deployment can be removed, unless we actually
  need them and they can be modified to do the right thing
- hostgroup group_parameters doesn't cope well with empty values (hostgroup validation
  throws up validation error). This wasn't interacting well with the shared password
  since by default it's empty (we use random ones by default). The hackish workaround
  is to set it to the string "BLANK" but this should be resolved in a better way
- related to the above, I'm only conditionally setting the group_param value based
  on whether it's nil, but this didn't resolve the error -- it just pushed the error
  further down

Things that are done:
- Created PasswordService class to track password settings and all the random passwords
- Added password elements to the Wizard step 1 UI, although it's not currently connecting
  properly to the real data (i.e. defaults aren't populated properly from the obj, and
  form submission isn't submitting anything for the .passwords sub-object
- initializer sets defaults for passwords (including all the SecureRandom.hex values)
- fixed typo in nova_network validation
- nova subobjejct is now always created, instead of only conditionally based on network
  setting. I did this because its absence affected the initialize method, and also
  because the point at which the networking, etc. are chosen is *after* the db object
  is created, so any 'initialize' actions need to take into account possible future
  selections
- Added the dynamic values for passwords to seeds.rb