split 10,000 lines of client-side JavaScript into multiple files (redux)

This PR supersedes https://github.com/codeforamerica/streetmix/pull/449 since that was against the `merge-in-backend` (which I've already merged into `master`).

In any case, the divvying up of client-side JavaScript code continues in the `split-client-side-js` branch, this PR, and issue #226