Multiple recipient types and assigning clientUserId to recipients

The following is a work in progress, but I thought I would get the conversation started. I have added support for multiple client types when creating an envelope from a document. I imagine something similar will need to be done for creating an envelope from a template.

I have also added clientUserId to the recipient model to allow us to properly retrieve an embedded url when we create an envelope using clientUserId on the recipient.