Add devtools as a development dependency

* This branch will *not* be merged into master directly. It's main
  purpose will be to setup devtools to run against memoizable code
  and specs to make sure it meets the same standards as other
  ROM related code.

  Some commits from this branch may be cherry-picked into master,
  such as documentation, specs or code refactoring, but in general
  devtools specific code won't be merged into master until 1.8
  compatibility is removed.
Add guard configuration
Remove ruby 1.8 from the travis testing matrix

* Add bundler arguments and configure the test script to run
Change rake config to use devtools rake tasks
Change spec helper to use devtools style organization
Remove shared spec that is provided by devtools
Change rspec configuration to match other gems
Add default devtools configuration files
Change procs to 1.9 style syntax
Add required ruby version to gemspec
Remove unnecessary guard clause from spec
Change devtools, flay, flog, reek and rubocop thresholds

* Add rubocop configuration that will exclude vendor
* Fix code to pass rubocop