Updated for performance

Original version re-parsed the csv file for each attempted match that
wasn’t cached.  Locally, this took about 20sec per lookup.

Updated version pulls the cvs into a dict, where lookups against the
dict take about 90-100ms.

found matches are stored in a separate dict with the http_user_agent as
the key, so finding cached matches is a O(1) lookup.  The found matches
are then pickled so they can be reused on subsequent runs.

Cache will not be used if the browscap file has been updated.