Prepare for AO3 tests by testing network access via mock NSURLProtocol.

AO3 needs two requests to update the overview, so it is not practically possible to give mock data without simulating the entire network. So that's what we do now. It's really amazingly easy with NSURLProtocol!
Fixed crash for stories with no genre.

The state machine approach for genre was not working just like that after all.
Ensure that rendering works even if no genre is present.
FF-specific properties are now in StoryOverviewFF only.

This should allow work on AO3 support.
Added tests for AO3

Once these tests pass, it's almost (but not quite!) certain that AO3 works without trouble.
Category is now Fandoms, which can be an array.

Not sure why I ever called it category. Fandom fits much better. AO3 has a much more expansive way to deal with this than FF, where one story can have arbitrarily many randoms. I like that, so I'm mapping FF.net to that model, too. Crossovers in the FF world will remain as one logical fandom for the time being, since this is not some big management tool. This may need to change some time later, but not right now. Also, the category URL is gone, since I wasn't using it anywhere anyway.
AO3 stories work on the backend

Notes are not supported. Also, this hasn't really been tested with the UI so far.