user_model->activate(): $code parameter is not optional

PHP error messages are our friends.  They tell us developers when we've
forgotten to pass a required parameter to a function.  They even give us a
backtrace[1] that shows the exact file and line of the call that needs
fixing.  Welcome the error messages, by ensuring required parameters do not
have default values.

[1] Backtraces may be void if suppressed by CodeIgniter's default error
handler.  I'm getting them at the moment without modifications to CI...
they are coming through xdebug though.

Please do not re-implement PHP's own error messages and ask people to
translate them into their native language.  Developers speak English,
at least to the point of understanding the error messages of their
programming language.

(To be fair, there's an exception in the case of public methods on
CodeIgniter _controllers_, which can cause some confusion.  With those
methods the parameters are taken from URLs.  It's usual to provide default
values to suppress PHP errors, and show something slightly less alarming to
the unfortunate user).
model->find_all(): remove "Invalid selection" error for empty results

This generates log noise.  E.g. when visiting any page with the profiler
turned out but without permission to view it

DEBUG - 2013-04-10 09:07:17 --> Auth class initialized.
DEBUG - 2013-04-10 09:07:17 --> Bonfire MY_Lang: Language file loaded: ../application/language/english/application_lang.php
DEBUG - 2013-04-10 09:07:17 --> File loaded: /home/alan/php/Bonfire/bonfire/modules/permissions/models/permission_model.php
DEBUG - 2013-04-10 09:07:17 --> Model Class Initialized
DEBUG - 2013-04-10 09:07:17 --> File loaded: /home/alan/php/Bonfire/bonfire/modules/roles/models/role_permission_model.php
DEBUG - 2013-04-10 09:07:17 --> Model Class Initialized
DEBUG - 2013-04-10 09:07:17 --> [Role_permission_model: BF_Model::find_all] Invalid selection.

(backtrace:
5	0.2327	3504544	Base_Controller->__construct( )	../MY_Controller.php:183
6	0.2494	3883288	has_permission( )	../MY_Controller.php:121
7	0.2494	3883440	Auth->has_permission( )	../auth.php:978
8	0.2543	3990520	Auth->load_role_permissions( )	../auth.php:490
9	0.2544	3990776	Role_permission_model->find_for_role( )	../auth.php:580

Supposedly it's simultaneouslly an unimportant debug message, and a
user-facing error message that requires translation.  The message text
looks equally unhelpful for either case.

(The real WTF as they say, is that we're still forcing the caller to handle
empty results as a special case, by returning FALSE.  And then not
documenting how to distinguish this from a database error).
user activation: don't put emails in urls, CI forbids it (issue #785)

CI has a mandatory error "The URI you submitted has disallowed characters"
for certain characters.  Email addresses can contain lots of characters,
including at least one that CI doesn't like (I think it was '+').

The activation URL used an email address to specify the user.  Use the
user ID instead.
users controller: don't use non-existent lang('us_activate_error_msg')

It was largely covered by 'us_err_activate_code' already.

This avoids a "FIXME ('us_activate_error_msg')" appearing (from the revised
language class).