add_persona_from_details
Description:
Add a new persona in the given PersonaStore based on the details
       provided.
If the target store is offline, this function will throw IndividualAggregatorError.STORE_OFFLINE. It's the responsibility of the caller to cache details and re-try this function if it wishes to make offline adds work.
The details hash is a backend-specific mapping of key, value strings. Common keys include:
- contact - service-specific contact ID
- message - a user-readable message to pass to the persona being added
If a Persona with the given details already exists in the store, no error will 
      be thrown and this function will return null.
Parameters:
| parent | an optional Individual to add the new Persona to. This persona will be appended to its ordered list of personas. | 
| persona_store | the PersonaStore to add the persona to | 
| details | a key-value map of details to use in creating the new Persona | 
Returns:
| the new Persona or  | 
Exceptions:
| IndividualAggregatorError.STORE_OFFLINE | if the persona store was offline | 
| IndividualAggregatorError.ADD_FAILED | if any other error occurred while adding the persona | 
Since:
0.3.5