Split trip classification into its own file

As it turns out, most feeds have a reliable direction_id field that makes
the somewhat unreliable classification unnecessary. Therefore, it goes into
an as-yet unused classify.py module that will be used to try and reconstruct
direction_id for feeds that don't have it as part of the parsing step.
Add a Trip class.

This reduces some of the ad-hockery of the data structures and will be
useful in the code to reconstruct direction_id.
Minor timetable.py fixes.

It now allows querying by route_id when there's more than one route
with a given short name.
Also fixes a typo route_tools -> routetools.
Update to parse for new version of spatialite

We now depend on spatialite v5.
Also, disable synchronous mode for the initial dump into a db,
which speeds up loading considerably.