add grunt newer+jshint watching; refine keystone integration