Extract artificialTokenEdit directive

Useful because we have easy access to the state.change function there -
something we want, so that we trigger the need for a save, make an
entry in the history etc. etc.
Use unique scope variables in artificialTokenEdit
Add debouncing support in notifier
Debounce not logged in message in notifier
Add spec for notifier debouncing
Add spec for debouncing in notifier
Refactor and fix debouncing in notifier
Unfocus spec
Merge pull request #524 from latin-language-toolkit/debounce_no_login_message

Add optional debouncing to notifier
Extract version info generation into own function
Add banner to all uglified files
Ignore version.json
Fix error when version.json does not exist
Merge pull request #525 from latin-language-toolkit/at_fix

Extract artificialTokenEdit directive
Prettify banner
Merge pull request #527 from latin-language-toolkit/banner

Add banner to built files. Fixes #442
Hold correct selection state on morph merges

During the merge we overwrote this information and had a minor visual
bug in the morph selection panel.