Merge pull request #618 from afuna/scripts-at-bottom-bug4073

(Bug 4073) Move scripts to the bottom of the page for foundation pages
(Bug 5265) Convert /community/index to TT + foundation
(Bug 5265) Convert the list on /community/manage to TT + foundation

* moves the page from /community/manage to /communities/list
  The form elements for community settings at the bottom are still undone

* modifies the appearance and order of the links to be a bit less jumbled together

* converts from BML to a controller + TT

* converts to Foundation for greater consistency across the site
(Bug 5265) Split settings in /communities/list into their own columns
(Bug 5265) Convert /community/create to Foundation + TT

* now under /communities/new

* the creation process should be the same functionally, different
  visually (also differs in backend: using controller + view)

* adds $r->HTTP_SERVICE_UNAVAILABLE to DW::Request::Apache2, to emulate
  existing sysban behavior in non-BML contexts

* adds jquery.checkusername.js for general use when creating / renaming

* adds jquery.validation.js for foundation pages. Currently
  experimental. Adds error message display and handles ARIA flags

* adds htdocs/js/page folder for per-page JS. This should be fairly
  minimal, mostly initializing. Reusable modules should go into
  htdocs/js

* adds .journaltype-textbox / .$journaltype-textbox (e.g., div
  class="journaltype-textbox community-textbox") classes, to be used
  whenever we want the userhead in a textbox
(Bug 5265) Fix links to community/manage to community/create

* community/manage => communities/list

* community/create => communities/new

Redirect is in place, but no sense having an extra step.
(Bug 5265) Use DW::FormErrors in the Community controller

This also acts as an example of how to use the DW::FormErrors object
in controllers. Note that it's really all in the controller -- the
display of the errors is handled by the site skin, instead of having to
be inserted per-page
(Bug 5073) Use existing .error elements when validating with JS

Previously, we just used js-generated .error elements; but if we have an
existing error (say from page load), and then they change the value, we
want JS validation to modify the existing error message
(Bug 5265, 5073) Tweak .row .columns container around page content
(Bug 5265) First draft of /communities/members

* Revamped style
* Ability to filter by user roles (versus sort)
* Some stuff still hardcoded; the form elements don't work yet
(Bug 5265) Show only relevant filters/columns

E.g., moderated communities should show the moderator / unmoderated
columns. Unmoderated communities don't need those
(Bug 5265) Use userhead instead of plain text for username

Also sorts usernames alphabetically
(Bug 5265) Only lookup ljuser for users we're going to show

Also adds some comments.
(Bug 5265) Populate the membership status checkboxes
(Bug 5265) Remove "Invite New User" section

Will try to put this into its own page
(Bug 5265) Add "select all" checkboxes

Each checkbox checks everything in the column below it

(Technically it checks every checkbox with a name that matches the
select-all checkbox's data-role attribute, but... ;))
(Bug 5265) Fix checkbox status when filters are active

It was only displaying the statuses we were filtered to (instead of
displaying all statuses for the users who match the filter...)

It might be possible to do this a better way, but for now I'm falling
back onto the original implementation of just pulling up all community
edges.
(Bug 5265) Make members editing work
(Bug 5265) Success messages
(Bug 5265) Cleanup

* alphabetize edit.tt.text

* remove unused variable %usernames