Streamlined strlist->alist code

It didn't make sense to pass anything except the string list into the
function, so I removed that part.
Added strvector->alist

The tags actually come as a vector in the current way that I'm fetching
the data, so I made this function to convert it to an alist.
Removed strlist->plist code

Since I'm not going to use plist anymore there's no point in keeping
this code around.
Changed the prepared query name

Now it's called transit-stops-within. I'm trying to strike a balance
between expressivity and brevity.
Added two helper functions

get-routes and get-metcouncil-routes are helper functions to get the
route strings.
Added two functions to work with lists

strings->list takes a space delimited string list, such as "3 4 5" and
converts it to a list like (3 4 5). I haven't done much testing on this.

I borrowed the code for flatten from rosetta code, under the GNU Free
Documentation License 1.2. It flattens lists.
Added compare-routes

Currently it will take in an alist of the tags for a node, convert the
routes string list to int lists and then run intersection. This is only
useful for two individual stops.
Added routes-within

This function takes in an origin_id, a distance and a type of stop and
then constructs a list of every route that distance away from origin_id,
removing duplicates.