WIP - Initial interface ideas

* Much of this was borrowed from adamanitum, with small tweaks and
  moving around some of the logic a bit more.

  Once the interface is decided upon I will likely spec this all out
  and/or borrow some of the specs from Adamantium before merging
  anything into master.
Rename original_instance_method as unmemoized_instance_method
Rename memory to memoized_method_cache
Refactor memoized instance method creation to be simpler
Merge branch 'master' into wip-interface

Conflicts:
	lib/idem.rb
Fix module comment
Change comment to be more precise
Change instance#memoize interface to accept a Hash
Fix YARD docs
Test against Ruby 1.8.7
Remove #memoized instance method

* I don't understand what the purpose of this method is. If I wanted
  to know what the memoized method value is I would just call the
  method directly.
Update testing matrix to be more inclusive
Remove devtools for Ruby 1.8.7 compatibility
Remove unnecessary magic encoding comment
require 'memoizable/version'

Because require hashes based on the string, not the expanded path of the file,
it's important that we require the version file the same way that it will be
required elsewhere to avoid constant warnings.
Add myself as an author
Update gemspec
Fix issue on Ruby 1.8.7 where methods return negative arity
Replace ThreadSafe::Hash with ThreadSafe::Cache
Stub out spec directory