There needs to be a way to deeply clone an object.

This can be used in API methods such as `pim.contacts.clone()`.

Since it is a utility method, this makes most sense in `lib/utils`.

Reviewed By: Nobody
Tested By: Nobody
`Contact.clone` should perform a deep clone.

Documentation describes method as:

"Returns a new Contact object that is a deep copy of the calling object,
with the id property set to null.":

When dealing with a property that is an object, itself, the
current way a Contact was copied would result in that object being the
same (and not truly copied).

Example:

    var a = new blackberry.pim.contacts
                            .Contact({name: {givenName: "Dave"}});

    var b = a.clone();

    b.name.givenName = "Steve";

    console.log(a.name.givenName); // => "Steve"

Note: This also meant some matchers in tests had to be
changed to `toEqual`, vs `toBe`.

Reviewed By: Nobody
Tested By: Nobody