Minitest Specs

I noticed in issue #12 that you were looking at RSpec for tests. I did some research and it seems that MiniTest is now the de facto test standard for Ruby 1.9 onward. Luckily it also supports RSpec style specs! So I rewrote all of the tests to use MiniTest specs. This pull request establishes a good baseline for further test improvements.

The changes are mostly direct translations of the old tests with some reorganization to better fit a behavioral testing model. That does mean that there are still tons of failing/nonsensical tests, so I think we still need to go through and rethink a lot of them.