Improve Dockerfile

These changes improve the build process so
that cached layers are re-utilized - especially
`npm install`.

From this article http://bitjudo.com/blog/2014/03/13/building-efficient-dockerfiles-node-dot-js/