added watchify to auto-recompile JavaScript as it changes

note that this largely duplicates the `dist` target and doesn't watch
resource templates for changes
prevented repeat initialization of avatar widget

pjax caches the previous DOM state (rather than just the original HTML),
so avatars might already be present

I'm not sure idempotence should be individual widgets' responsibility,
but it also kinda makes sense