Adding Crawler, major refactoring on other classes

This basically shows how much better it is to have multiple classes
doing a single thing, and then a single 'user facing' class
combining the results of all other classes. In this case the class also
does an extra step besides combining (assembling the VOs).

This way, the parser is decoupled from the VO and doesn't even need to
know the road name or the url.

I've also dropped the Fetcher with different adapters to a ducktyped
HttpFetcher/AssetFetcher instead, since it wasn't doing much.

I'm still unhappy with the duplicated asset speeds on both parser and
crawler specs. I could work around it by stubbing the parser contents on
the crawler specs, but figured I'd keep it real instead for now. That's
the drawback of using 'combining objects' though.