Auto migrate user custom json system to config.py based system

The existing config.json system is not very amenable to changes.
We realzed this when the carddav branch made some changes an
introduced v5 of the json. PUshing out major updates like this
can be intrusive to those users who have made customizations to
their copy of the config.json file. To address this issue, The
modified protocol will be as follows:

- Teh system will load the stock version of the latest config json
- the parsed config dictionary will be passed to the user in
  user_dir/config.py which can be any python code. It is expected
  that the user modifies the config idctionary and sends it back

This way we can keep pushing updates to teh config json while
seamlessly retaining the user customizations.

In this patch, the auto migrate will work if the user has not
made any changes to his json. If we identify any changes then
The auto migrate will stop and user will be asked to manually
migrate his changes.
Updating development log
Updating documentation for CardDAV support
Additional fixes to doc related to carddav