`autoload`, besides being deprecated by Matz, does not work to require files
that are in unactivated gems--it only works with ruby's built in require, for
files that are available relative to a directory on the load path. Instead,
we use `const_missing` to make it work.