Added create method for sending email to specific users
translate: cleanup to not use input->get() and input->post() together

It seems to work fine, but it's surprising to see forms submitted to
urls which have query strings in them.  Let's replace the query string
parameters with normal CodeIgniter parameters.

This means the parameter can't be handled in shared code in the
constructor.  But it was only shared by two methods, and the real
common code was limited to a single line.  Moving code into index()
allows duplication to be reduced, so there's an overall reduction in
lines of code.

This also removes several & characters which had not been correctly
escaped for HTML.
translate editor: remember to html-escape the form values

Detected by HTML5 Validator.
logs module: html-escaping of log entries

HTML5 validator noticed the un-escaped PHP guard code.
Skip the PHP code from the log file.  And remember to escape
the rest of the log, heh.
Escape '&' in anchor hrefs

'&' needs to be escaped as '&amp;' in html.
user module: mailto uris don't start with slashes

w3c-validator:

Bad value mailto://alan.christopher.jenkins@gmail.com for attribute href on element a: PROHIBITED_COMPONENT_PRESENT in authority component.

mailto://alan.christopher.jenkins@gmail.com">alan.christopher.jenkins@gmail.com</a>
gravatar_link(): don't generate invalid empty id attributes
ui settings: remove duplicate ids (they weren't used)

id="shortcut2" (and so on) showed up twice.
It wasn't referenced by html, css, or js, so just get rid of it.
ui settings: remove duplicate class attribute

class="button" and class="btn" on the same element.
.button isn't styled now anyway, so just remove it.
activities reports: remove stray bracket characters

Not displayed, but they show up as errors in the HTML5 validator.
settings module: fix typo in html boolean attribute
themes/default/login.php: fix stray closing tag

Main container gets closed in parts/_footer, so we need to leave it open.

That makes login.php identical to index.php.
Rather than wrangling with the indentation for this pecularity myself,
I just copied index.php verbatim.  So for now, at least they're consistent.
Fix missing/stray/mismatched html tags

Detected using HTML5 validator.
profiler: cellspacing="0" is invalid and we don't need it

html5.validator.nu: The cellspacing attribute on the table element is
                    obsolete. Use CSS instead.

http://stackoverflow.com/questions/339923/how-to-set-cellpadding-cellspacing-in-csshttp://stackoverflow.com/questions/339923/how-to-set-cellpadding-cellspacing-in-css/3209434#3209434

bootstrap.css already used the technique described on stackoverflow
to ensure 0 cell spacing as a default for all tables.
That's good, because none of the other tables generated
by the profiler were using cellspacing="0".

Although, the profiler can also be shown in the front-end.
So we'd better add the CSS in profiler_template anyway,
to be on the safe side.

Sanity-tested by overlaying before/after screenshots of the affected table.
modulebuilder: fix clicking on legend to toggle fieldset contents
modulebuilder: fix switching from "existing table" to "create new"

Remember to re-show #field_numbers
(the number of "additional table fields").
modulebuilder: fix form-saving to preserve radio buttons

When saving form states, radio buttons need special handling
(like checkboxes already have, but a bit different).

This preserves the "Input Limitations" radio buttons
(Validation Rules -> "toggle more rules"), which would otherwise
be forgotten.

Also avoids the need to set the "Create New Table" etc. radio button
from PHP.  And removes a bug where "Create New Table" would be unchecked
when clicking on the "0 Additional table fields" link.

(Disclaimer: my code works fine here, but it's not completely general.
 It won't restore a group of radio buttons to an all-unchecked state).
modulebuilder: associate dangling labels with groups of checkboxes

Fix two groups of controls without a labels properly associated.
(Discovered by inspection, aided by WAVE toolbar from WebAIM).

Replacing the label with <legend> (and the enclosing div with <fieldset>)
would be best for screen-readers (nested fieldsets are perfectly legal).
However bootstrap's CSS doesn't support that usage.

Fall back to WAI-ARIA.  Tested with Orca Screen Reader.  Both e.g.
"Removable?" and "Yes" are read, but only after disabling CSS -
reported as Orca bug <https://bugzilla.gnome.org/show_bug.cgi?id=680249>.

The behaviour is not well-specified.  The only bright side is
that there's been at least two large test suites which rely on the same
behaviour as we do here.
modulebuilder: fix keyboard accessibility

1) "Toggle advanced options" is faded, and fades in when hovered.
   It should also fade in when focused using the keyboard.

2) "toggle more rules" was a clickable span.  It would probably look
   ugly if underlined, but that's no excuse for not marking it up
   properly as a link (which can then be focused using the keyboard).

3) Validation radio/checkbox labels (and controls) were also faded.
   The labels need to fade in when the *corresponding control*
   is focused.
modulebuilder: cleanup /create/ urls

Remove vestigal "/index/" segment.
Remove vestigal attempt to read "field_total" from POST data
(it's not there anyway).

What's left is nothing more than a normal CodeIgniter parameter.