Fixing a bug using an IO object as input source.

An else statement was accidentally removed sometime during development
and caused an error to be raised whenever one used an IO object as input
source.
Error is raised for invalid output sources.
Adding a rake task for running all tests.
Adding custom error classes.
The version constant now resides in version.rb.
Gemspec now utilizes the version constant.
Bump version.