Add Persistent->fromArray() for use by Persistent::create()

Persistent objects need a separate method to set properties from an array of data versus hydrating raw data elements from a data persistence source. The added method fromArray() should be used to set data from user input, while hydrate() should be used to set data from the source repository.

Fixes #2