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.
roles settings: fix permission matrix clickable headers

Detected by HTML5 validator.
(cellIndex is not a valid HTML attribute).

We were also setting it to the wrong values,
so clicking on the header affected the wrong column.

Since we're using jquery .eq() to select the cells in the table column,
let's use jquery .index() to determine the index of our column.
install: fix nested <p> tags in error messages

Stop CodeIgniter adding extra tags around form validation messages
(copied from Authenticated_Controller).
user login: remove blank label (confuses Orca Screen Reader)

This was already omitted in themes/default/parts/modal_login.php.

Blank label doesn't contribute to text, layout
(it's a float in the margin of a normal block),
or anything else.  Blank elements are generally deprecated.

On the negative side, the blank label confuses Orca Screen Reader,
which reads "Remember me for two weeks" twice.

I've filed it on the GNOME bugzilla as well, but a11y is generally
lacking love.  So we shouldn't go out of our way to confuse
people who have reading disabilities.
Remove empty label elements

Many reference non-existent ids, which shows up in conformance checkers.
Some have inconsistent identation in the source code.

Likely some will confuse screen readers like Orca,
and there's just no reason for them.
(See previous commit message).
Fix missing ids referred to by form labels

w3c-validator points out:
  "The for attribute of the label element must refer to a form control."

Specifically, the _id_ of a form control.  The _name_ doesn't count :).
timezone_menu() needs an id so the control can be labelled

We're using <label for="timezones">, so we need
id="timezones" on the form control.

flagged up by w3c-validator:
  The for attribute of the label element must refer to a form control.
  <label class="control-label" for="timezones">Timezone</label>