added cached properties
added final batch of get_field_by_name
added cache expiry in different function
resolved small typo issue
refactored get_new_field
refactored internals into cached properties
small fixes

Conflicts:
	django/db/models/options.py
added final fix