Resolved traceback when default values is passed for magic fields in an object while creating or editing.

Fix #860

Steps to reproduce : http://youtu.be/li1026TGFUg

Currently, if a magic fields(create_uid, create_date, write_uid, write_date) are used in any object, they are removed from the dict while creating a record with a warning. But in case when default value is passed for these columns for eg: passed in context as default_MAGIC_FIELD then, they are added again from def _added_missing_defaults which results in sql error: column specified more than once. So the defaults should be evaluated before the removal of these columns preventing the readdintion.