End user defined custom fields for Django including contrib.admin support