Upgrade slick to 2.1.0

Also contains some starts to refactors. Making this PR now as to match up with the upgrade to slick 2.1.0 in GeoTrellis and the gtfs-parser project.

Feel free to ask questions about the work-in-progress refactor on this PR. I'm making comments to point out a couple of things that I changed.
This was a confusing code pattern. Following the logic of the code, there would never be a 'None' assigned to gtfsData at this point. It's better to just have a `lazy val` that creates the gtfsData. The use of `Option` vars that are initialized as `None` is a pattern I've seen a couple times with new scala developers, but is most likely not the right choice; there's other ways to solve the problems it tries to solve, though they might not be obvious. Ask if you run into wanting to use this pattern again!