define everything using AMD and load using requirejs
and load the top-level app as a module too
reconfigure tests to use requirejs
add build to travis task