Accept updates from the Trigger Toolkit.
Update .gitignore per advice from Antoine at Trigger.
Include an 'add' method to add a contact to the user's address book.
Support addresses when adding a contact.
Support a photo when adding a contact.
Support IMs when adding a contact.
Bump to version 2.4
Update docs to include the add method.
Update tests to cover add method.
Initial Android contact creation.

Currently handles only name and organization, but infrastructure should be
ready for the rest, except photos.  Docs are woefully inadequate at present.
Support creating (nearly) the complete Android contact.

Supports name, displayName, birthday, note, organizations, phoneNumbers,
addresses, emails, IMs, and urls.  Reading the birthday back doesn't seem
to work at present, and organizations and StructuredName seem to read back
not identical to how they are created, but they appear fine in the People
app.
Don't add missing properties when reading contacts.  Code & test cleanup.

We don't need to keep repeating ContractsContract.CommonDataKinds everywhere
any more; nor should we add e.g. a null honorificPrefix property if no prefix
is present.

Also, clean up the automated test to better handle the differences between
iOS and Android.  NOTE WELL: there's some stuff in the test that's going
too far; these will need addressing later (e.g. what's up with
organization pref and type??).
Cleanup, pre-ICS Android support, sidestep birthday issue.

Cleanup: JavaDoc, comments, rationalize some variable names.

Birthday issue: right now, add() will write a birthday, but it doesn't
get read back properly.  That needs some work later.
Support adding contacts to the native address book.

This merge provides an 'add' method, callable as:

forge.contacts.add(contact, success, failure);

contact: contact object -- the contact to be added.  This is the same
kind of object as what's returned by forge.contacts.selectById().

success: function(id) -- callback to be invoked when all goes well.
'id' is the ID of the newly-added contact.

error: function(content) -- callback to be invoked when something goes wrong.  'content' has the details of the error.