begin supporting tracking buses, and some smaller changes

The primary change is to support tracking and graphing TransLink buses
in addition to car2go cars. The script handles data as formatted by
the TransLink API. (Files downloaded by tiny cron script not included
for now.)

To make bus graphs better, functionality to mark vehicles by speed,
manually change the time step between files (to as low as 1 minute),
and change the symbol used by matplotlib to mark the vehicles has been
added.

Also added was an option to keep the marks for the vehicles for
a number of rounds after the vehicle has moved on or disappeared.
This is intended to help visualization by providing some continuity
between frames (data on a vehicle's speed at a given position enters
the graph in a given frame then goes away after a while), but code
for this is a noted hack and there's probably a better way to
reimplement this.

I also got into a minor refactoring hell due to the many new params
now supported, so there's associated rewrites to how functions are
invoked and how function params are handled.

The bus functionality isn't really completed: you have to explicitly
tell the script the city is Vancouver by renaming the bus data files,
the map used is the same as for car2go in Vancouver (and so includes
North Van but not all of Vancouver, to say nothing of supporting
routes in suburbs), etc, but I'm committing now before I manage
to rewrite the whole file in one commit. Whee!