Clean up the code a little bit

I was looking at doing some work on the library and noticed that the code base has gotten a little messy over the nearly two years of work that has gone into mutations. I thought I could lend a hand by first going through and cleaning up the code somewhat.

The commit messages explain what they're doing, but here's a list of everything I went through. Note: this was all done with rubocop, so it might not be fully complete - but it's a start at least!

 - Change `!condition` blocks to `unless condition`
 - "Ignore" (by naming `_`) unused variables (this was primarily in specs)
 - Remove redundant references to self in classes
 - Standardize all asserts in specs to use parentheses to get rid of `(...)` groupings on some (this was hard to read)
 - Standardize the whitespace and array style throughout the code base and specs
 - Switch ifs to modifier form, where possible
 - Switch simple readers, writers, and accessors to use `attr_*` methods and/or aliases
 - Switch to guard clauses instead of nesting functionality in ifs, where possible

And lastly:
 - Switch to Ruby 1.9 hash syntax (since 0.7.0 dropped support for Ruby 1.8.x)

I hope this helps! I know it's a large-looking pull request since it touches so many lines, but c'est la vie when doing this kind of work. Let me know if something needs changed or if anyone has something to add!