Revert to use of isset($_POST[]) for submit buttons

Fix the unfortunately incomplete revert of post_key_exists().
See #699 for the known issues, mainly nonfunctional delete `<button>`s.
Also reported as #755.

post_key_exists() was intended to replace, unify and name the necessary
usage of isset($_POST[]).  This attempt drops the replace and name part :).

I assumed post_key_exists() was already in the right places, and ran a
global search+replace on it.

git checkout -b tmp
git revert be42cff
git diff -w > revert.patch
git checkout develop
git branch -D tmp

patch -p1 < revert.patch #+1 fix of rejected hunk

git rm application/core/MY_Input.php

find -name *.php -exec sed -e "s/\\\\\$this->input->post_key_exists('\([^']*\)')/isset(\\\\\$_POST['\1'])/g" -i \{\} \;

find -name *.php -exec sed -e "s/\$this->input->post_key_exists('\([^']*\)')/isset(\$_POST['\1'])/g" -i \{\} \;

git grep post_key_exists
Merge branch 'feature/revert-post-key-exists' into develop
Fix install failure in 003_Permission_system_upgrade.php (issue #760)

My version of MySQL "forgave" inserting NULL in what turned out to be a
NOT NULL varchar, converting it to the empty string.  But I didn't mean
to do that, and it breaks elsewhere with the error

"Field 'description' doesn't have a default value".
003_Permission_system_upgrade.php: status field shouldn't permit NULLs

It has a sensible default value anyway, so this shouldn't cause any
difficulty.
Revert removal of "unecessary" assignments to `$_POST['id']`" (issue #762)

Turns out it was needed by the 'unique[]' validation rule,
which I now understand (regardless of whether I approve of it).

TODO: I still think the one in the roles controller is going
to cause breakage on certain databases, where inserting 0 into
an AUTO_INCREMENT/equivalent will simply insert a 0 value.

Completely reverts 5f9fff85bc2f191c0b911bf317a50dfa6e18ccaa.
Reverts non-core part of 0306fe54afc705059407c58014c82d6aa034c54.
controllers: only set $_POST[id] for updates (used for unique validation)

because for _creation_, we don't want to pass an explicit id=0!
(it happened to work in MySQL, but it will not work in PostgreSQL,
and we've had reports that it doesn't work in the MySQL-derived Percona
(issue #750).

This fixes the roles controller to match the code in code in users, and in
builder-generated modules.

It's only an issue because the roles controller passed $_POST straight to
the model.  That's not ideal either but it's a separate issue.