Changes in structure of core classes:
* begin adding functions and methods to use mjd instead of jd
* Standardize Observer methods. Use method() to accept datetime objects, _method_mjd() to accept mjd time objects
* Change SGP4Predictor to SGP4Propagator
* Update satellite propagator methods to correspond to Observer methods
* Update tests and benchmarks with new class names and methods
* Remove orbit predictor Location class as inherited base class
* Create new Orbit class that can be initialized from a TLE.
* Refactor the SGP4Propagator to not call a source class directly. Instead initialize from Orbit or TLE object
* Create tests to ensure that SGP4 satrec propagator is created correctly from TLE object
Changes to pass iterators:
* Change Observer pass iterator algorithms to callable methods rather than subclassing Observer()
* Use MJD instead of JD in pass iterators. Update propagation and coordinate transformations to use MJD.
* Update tests to use new observer pass iterator methods
* move visual pass detail computation to separate function
* Performance boost: orbit_predictor pass iterator is now 1.2x faster
Misc:
* Remove old core.py functions. These can now be easily replicated with the current api
* Enforce mjd2datetime to always use microseconds.
* Rename satellite modules to sgp4.py and kepler.py