Move range parsing to separate classes

All parsers are derived from RangeParser class

Based on Olsen, Russ: Eloquent Ruby (2011) pp. 250-253
Remove ReissueParser class
Add BeforeParser
Add AfterParser
Ensure order of year_low and year_high
Merge branch 'refs/heads/issue-1'
Merge branch 'refs/heads/order-years-in-range'
Merge branch 'refs/heads/issue-3'
Merge branch 'refs/heads/remove-reissue-parser'