Better asset src/dist separation

Instead of having src and dist both served publically, one or the other should
be available only. This commit separates the two, and introduces a tool for
switching between them.

Additionally, this separation should correct issues with the base path when the
app is being run from a subpath of the webroot.
Updated UI change workflow
Fixed test harness

Out-of-date with current master:

- Replaced ng-route with ui-router
- ui-sortable path was incorrect
Merge branch 'feature/ui-src-dist-separation'

Updates the UI development workflow:

- src/ and dist/ will no longer both be available. This should resolve issues
  with resolving assets when not working directly in the application root.
- New CLI tool, `bin/ui-mode.php`, for switching between production and
  development mode in the UI.
- Updated documentation on how to contribute to the UI.