only save mapping if necessary
only refresh metadata when necessary
Merge pull request #55 from dimagi/perf1

only refresh metadata when necessary
Merge pull request #57 from dimagi/perf3

only save mapping if necessary
Merge branch 'master' into locking

Conflicts:
	ctable/backends.py