Comprehensive tests

I've fleshed out the test suite to cover all current functionality. Test coverage is now 100%.

In the process, I did the following:

* added SimpleCov dependency for test coverage
* adjusted dependencies in Gemfile and gemspec
* moved example from `lib/example` to a top-level dir
* create a test app in `spec` for tests

All functionality was left untouched with the exception of `one_of` which I found to be broken after I wrote tests for it. I have some other ideas for improvements/changes to this but didn't want this PR to be any larger than it already is.  Cheers.