CIDEVMI-1031 Algorithm Optimization for VEL3D,  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 _<branck name> 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