more generic patient registration refactor

added patient_registration tests. should move these to a functional
directory.)

added support for messages array setting on registration where you can
reference a property value on the record.

added support for using locale attribute on a record and scheduled
message.  if both the registration/record and scheduled message have a
locale defined then only those scheduled messages will get created.