Improve validation messages

Validations were just throwing a stringified hash which did not help
the use of the gem.

Replaced validations with explicit checks and corresponding messages.
Added some missing specs.
Merge pull request #27 from swalberg/improve_validation_messages

Improve validation messages