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.