ArgumentError is raised instead of custom classes.

The custom classes was just redundant and unnecessary.
Removing redundant error handling.
Switching out fixtures with more isolated cases.
Adding negative tests.
Fixing an issue where unparseable values would raise NameError.
Unexpected end of input is now properly handled.
Using Kernel#raise to instantiate error instances.
Removing parsing of NaN and Infinity.
Bump version.