Fix the "save" keyboard shortcut (#645) and avoid using "name=submit"

Why:

- #645: I broke "ctrl+s: Save any form in the admin area."

  > The JS keys off name="submit".  In some forms I had changed this to
  > name="save".  [Because] I misliked having some forms with name="submit"
  > to represent "save", and an alternate submit button with name="delete"
  > ...

- ctrl+s should not perform dangerous actions like deleting tables, because
  the user may have intended to invoke a harmless browser shortcut.

- One page - the emailer settings - had two buttons with name="submit", the
  settings page and the test form.  There was no comment to indicate what
  behaviour was expected when hitting ctrl+s here.

- name="submit" should not be used, because it masks the DOM submit()
  method on the form.

  http://stackoverflow.com/questions/3571328/form-submit-button-will-not-submit-when-name-of-button-is-submit

What:

 - Change the shortcut to key off name="save".

 - Use name="save" for all "save" buttons.  I include "create" as well,
   but I do not include more general actions, such as deleting tables.

 - Set new names for all the other submit buttons :).

 - Update controllers to accept the new names.
Add post_key_exists(), use it to improve code consistency

This avoids the uncommented use of isset() and $_POST, particularly
in the output of the module builder.
Language fix v1.
Cleaned up to use sprintf.
Fixed lang-keys, indent too.
database controller: remove old delete() method
database controller: backups(): remove Windows-centric no-op

Having write permission to a file doesn't mean you can delete it.

Presumably this was designed with Windows in mind - it's trying to check
whether another instance of Bonfire has opened the file.  But you can't
delete open files on Windows anyway.
database controller: refactor backups()
Translation for french version,  fixed using "lang()" where there are static string And fixed error Title table on user views.

- partial translation -> must be know if technical words must be translate like "Controller, Models, Views, or Database, Form Input. In my opinion, we could let technical words in english because it's current usage of using english in programming
- In order to translated breadcrumb, add new rules, see above

Translated :
- application_lang
- database_lang
- /core_modules/activities/
- /core_modules/builder/

Add new entries on application_lang to next translation breadcrumb which is ommited

--
New rules : Add new entries on each language file of each module (and core_module) like $lang['module_name'] = 'Module Name'; in order to use on breadcrumb translation
If node breadcrumb is a context, this translation is on application_lang $lang['bf_context_NAMEofCONTEXT'] and must be add on New Context)
--

Add fix forgotten "lang()" using :
- Activities core modules :
  > /core_modules/activities/controllers/reports.php
  > /core_modules/activities/views/reports/index.php
- Breadcrumb function on Template :
  > /librairies/template.php

Add a test on the user language to add a special particle just for french version in special case:
- /core_modules/activities/views/reports/view.php

Add fix thead error (module -> user) on top_user table :
- /core_modules/activities/views/reports/index.php
Remove some direct uses of $_POST
users profile editor: fix setting username (including issue #661)

than the form uses to display the field).

Also, don't silently ignore the strings '0' and ''.

This will match the behaviour of register() and the admin interface.
users module: password and display name fields are strings, never FALSE

These fields are always present in the form, so input->post() will never
return FALSE.  However the current test would silently ignore the string
'0'.  Avoid the code-smell by using an exact comparison to the empty
string.
users model: no need to clear "submit" key

This isn't one of the few models that was being passed the $_POST array
directly.
users model: remove duplicate strings
users model: remove dead code

These tests will never be reached due to form validation.
(The pass_confirm test was also a silent failure).

This kills a few language strings.  Also remove a couple of nearby
language strings that were already unused.
users model: empty() is not suitable for use on strings

    empty('0') == true

It's not the best named function^W core language construct :p.

Together with an earlier fix in the controller, this addresses issue #660.
Merge pull request #651 from ci-bonfire/post_key_exists

add post_key_exists(), use it to test for submit buttons
Revert removal of name="submit" in installer

(installer doesn't have post_key_exists())
Revert bits I'm not sure about yet
Revert translation of core_modules/sysinfo/views/developer/index.php
MY_Model: cleanup: use language helper function