Merge pull request #44 from laurentpayot/master

reduce is in functools module in Python 3
Cleanup of fields_for_document. Finally keep the fields in creation order too. Closes #1 (Yay)
Use f.name more consistently and not some var that points to f.name
Use db_alias and collection_name in _get_unique_filename. And delete old file before trying to get a new name
Field defaults in Fieldgenerator can be (are supposed to be?) callables
Don't construct the instance several times during clean and save
Cleanup of reference form fields. ReferenceField now uses pk and no longer id for the primary key
Use hasattr instead of except in fieldgenerator so errors during field generation don't get masked
SOme documentation and correct id's in map field widget
Formatting fun
Formatting again
More documentation stuff
Parameters for field generation
Don't pass min_length to string fields with choices
Get rid of the fake document hack with mongoengine 0.8.3
Add a swapped property to DocumentOptions. Might be usefull for more then just admin auth (though probably isn't)
Initial setting on fields
Support unbound function in patch_document
Generate a verbose_name for fields if it's None too
Remove _delete_bofore_save stuff for now. Seems to be unnecessary according to #47