add grunt watch support, and move js sources out to src folder.