Refactor the actual action into a method separate from the route dispatch

This lets other, future routes dispatch to the same action.
Support fasta via the web API

This eliminates a data pre-processing step for many use cases, making
usage of the API even simpler.
Refactor shared base type parameter from dispatch routes
Format results separately from fetching the results

Refactoring makes it easier to plug in formats other than json later.

Diff best viewed with whitespace ignored.
Accept a format parameter with requests; currently only json is supported
Support CSV output too

CSV is the most flexible general data interchange format and is what
most non-programmers are used to dealing with.
Quick lookup web form to upload FASTA and get back CSV

This makes the API into something non-programmers can use for basic bulk
lookup.
Refactor result formatting into more methods

This provides more flexibility for adding formats.
Merge branch 'fasta-and-csv-support'
Document the status of reverse complements for completeness