Major refactoring to use modeling

For now, it uses `jwstlib.modeling` instead of `astropy.modeling`, so Travis will not work. This will change when `astropy.modeling` has all the features that we need. This has a lot of major changes. The new usage should be pretty well-documented in the `docs`. Unit tests are all passing.