Chai ui plugin: improve argument validation
Authentication form test: description tweak
Registration form: test refactoring + small production code fix

Production code changes:
- bug fix: return the postLink function from the compile function; because I
  added the compile function later on after the link function, and because I
  didn’t have a test for the functionality in the linking function (SUrpRIsE!!),
  the linking function was simply ignored by Angular.
- Isolate directive’s scope. It doesn’t need to communicate with the outside world.
- Use $digest() because it only affects current scope while $apply() digests
  the all the scopes.

Refactored test to apply things learned from the authentication form’s tests:
tests should speak in terms of UI interaction rather than in technical terms.
Authentication form: prevent programmatic submit

To prevent fooling around brom the browser console.
Authentication and registration form refactoring

- extracted insertSpinnerInto and preventProgrammaticSubmit functions;
- added spinner to the authentication form;
Set page charset to UTF-8
mv app/ui/* app/util/
mv app/angular app/web-ui
mv app/firebase app/external-services