Be careful syncing $location.search and queries

We shouldn't sync the URL bar with the search query on every route
update because some routes may have query parameters that are
irrelevant for search, such as the editor.

Instead, sync them whenever the StreamSearch or (Page)Search route
controllers initialize.

Fix #1339
Start building up a pattern library

Starting with the form elements, the new view is available at
/dev/pattern-library and currently only shows form fields.
Move pattern library view to h.testing

This ensures that it's only loaded in development.
Add experimental form styles

These new styles include labels by default and error styles. It also
gives a little more breathing room between form elements.

The buttons now have a more consistent hover/active state without the
glossy highlight and the disabled state looks disabled.
Update the login form to trial new form styles
Use Compass for button gradients
Update registration forms to use new styles
Update the forgot password form to use new styles
Update the activation form to use new styles
Add new btn-clean style

This removes the background and borders from the button.
Update the editor to use the new form styles
Migrated the login form to the new form module

This required adding an additional deform/mapping_item template to
override the labels.
Remove old form classes

From now on the form module should be used and extended.
Fix vertical alignment of form-checkbox inputs
Add crude code preview to the pattern library
Add CSS only loading spinner
Add new loading/success indicators for forms
WIP Form validation on blur
Form validation on blur improvements

Add a temprorary hack as a directive triggered by the form-error-list
class which polyfills the `ngModelController` methods `$setTouched` and
`$setUntouched`.

The form styles and the directive both rely on the form-error-list
element being nested as a sibling of the field to which it relates.
More improvements to the form validation

 * Validate on "change" rather than submit. This prevents errors
   appearing when the user tabs in/out of an input.
 * Keypress updating of errors in place errors to immediately indicate
   to the user when they have fixed an error.