Handle phone labels properly when construct EXContact object

As Exchange does not support custom labels for phone numbers we
store any customisations to the custom field. When we fetch a new
contact from an exchange store containing such labels stashed in
custom we need to pull that out and rest the contact fields
appropritely.

We also do this for fax labels. We are yet to do this for email
labels
implement batch_update and writeback_sync_tags
Add ability to save the sync state from server to state.json

If we want to use the exchnage sync state support for synching we will need
abilityt to store collection level sync state inthe state.json

With this commit we add the requried support as well use that infra
to retreive and store the state during sync operations.

Note that there is a problem with this approach, as the exchange
sync state cannot be fetched after a push to the server... making
it virtually useless. Need to figure out the best way to work aroud
this...
Misc changes, README hanges