Add basic caching of intermediate results in TimingModel.
Reorganize caching code a bit.
Merge branch 'master' into cache
timing_model: init caching properly
Merge branch 'master' into cache

Conflicts:
	pint/models/astrometry.py
Merge branch 'master' into cache
Merge branch 'master' into cache
Merge branch 'master' into cache

Conflicts:
	pint/models/astrometry.py
	pint/models/timing_model.py
Merge branch 'paul'