to_arabic works for all roman numerals 1-3000, clunkily
refactored, all methods work, all tests pass