Added reading option list from tophat resources.
Added arbitratry options passing.
Refactor to make it easier to follow.
Merge pull request #65 from roryk/master

Generic options support