Dockerizing the app: Refactoring Dockerfile to run npm install only when package.json changes

This commit fixes the build of the Docker image by taking advantage of the caching
mechanism of the steps. As described at http://bitjudo.com/blog/2014/03/13/building-efficient-dockerfiles-node-dot-js/,
the step that installs npm dependencies must be separate by copying the package.json
in a separate step and running npm install after.

Adjusted the order where VOLUME and EXPOSE are defined to the bottom of the Dockerfile
without any difference.

*	modified:   Dockerfile
- Adding the instruction to install git earlier.
- Following the suggestion of the blog about using the cache for package.json only
- VOLUME and EXPOSE being in the bottom as they never change.