Sitemaps parser

See #38 

This adds a SiteMapParserBolt and a test class. It also reorganizes the test resources and makes the ParsingTester more generic.

As discussed, this Bolt uses a non-default stream 'status' to output the newly discovered URLs and the default stream for documents that are not marked as being sitemaps.

Could you please review this? Thanks!
> I'd assumed that the handling of the fails should be done within the spouts.

I think that the semantics of *failing* a tuple, in the context of Storm, indicate that something went wrong mechanically in the topology, suggesting that it should be retried. In this case, nothing broke--the bolt just wasn't able to parse the content as a sitemap.

> there could be something in the Fetching step that could vary from one run to the other (e.g. server returning partial content) which would justify giving the same URL another try?

Yeah that's a good point, and it's a situation where replaying the tuple might be warranted. Another related case is where the content was truncated because of the `http.content.limit` option, which would look almost identical. But in the former case, replaying the tuple might change the outcome, whereas in the latter, the content would still be truncated and the tuple would fail again.