Fix usebanner and default grunt build

Previously, the dist files banner would be lost when running grunt watch
(because usebanner wouldn't be called). This makes sure it's called after
changes to dist files.

It also fixes other small problems in the default grunt build - adds clean
to the start of the grunt task, and adds uglify in some places to make sure
the min js file actually gets updated. Should fix a few build frustrations.