CIDEVMI-1031 Algorithm Optimization for VEL3D,  WMM optimizations-r2

REL2.0 version of the WMM Optimizations

Added static caching of WMM models to prevent rebuilding the model for every data sample. Moved model instantiation outside of the vectorize call in magnetic_declination (generic_functions.py) to take advantage of the caching, but needed to add an associated version of wmm_declination(_remod) due to the change in functional signature.

Also added a directory 'results' to capture before and after snapshots of the nosetest profiling runs ( for both the functional and performance tests ). For nomenclature, I'm using the test file target of the nosetest, with _INITIAL appended for the before, and _ for the after.

Also, a minor change in generic_functions to avoid repeating cos/sin calculations.

@cwingard Ready for review and merge ( This is my first pull request, so please let know if I've made any mistakes here )
@s-pearce Ready for review and merge