Merge branch 'release/0.5'
Updating the version
Fixing the version number
template: remove magic behaviour of set('debug', ...)

This was mentioned in the old docs, but we're not using it anywhere.
If you use any of these names:

    debug|active_theme|default_theme|current_view|layout|parse_views|
    data|blocks|message|theme_paths|site_path|orig_view_path|ci

they will set class properties of Template, instead of adding a
variable to the view data.  I noticed this when trying to pass a
variable called 'debug' to the view.  The name 'data' also looks ready
to cause many man-hours of debugging fun.

There's no alternative setter for $debug, so I just made it public.
(Remember that without this change, _all_ the properties of the
Template class are effectively public.)  The other properties could
already be set as desired without using this magic.
emailer lib: process_emails(): respect enable_debug() and fix return value

There's not much point testing for CI_Session because it will always exist.
It's loaded by the users auth library, which is loaded by MY_Controller.

OTOH, it may well make sense to respect enable_debug().  This will help
make the debug code a bit more consistent in future.  I.e. we can use a
single PHP variable to hold debug messages, so we don't need to abuse the
session for it.  Being consistent about enable_debug() would make that
easier to explain and understand.

Also fix the return value to indicate success or failure.  It's what the
function comment says, and you shouldn't have to enable debugging just to
tell whether the function succeeded or not.
emailer lib: fix return value of send() and unify debugging messages

The function comment, users module, and create method of the email
settings controller think it returns boolean, but it doesn't.
Returning boolean would make good sense here.  Most callers won't
use the extra debug information - you already have to do extra
work to enable the debugging messages.  And for those that do use them,
grabbing them from a global variable is no big hardship.

(PHP does not do threading - or signal handling - and process_emails()
cannot be called recursively, so a "global variable" is not so bad).

Let's fix send() so it matches the documentation, and so the naive callers
who believed it will now notice when send() fails.

Also fix resend_activation(), which was trying to display the debug
messages, but would actually have errored out trying to display the value
of the private $debug flag.
Moving to version 0.6
Replace use of mysql_error()

Note I didn't touch the portion of install that actually sets up the
database, since that section is all mysql-specific.
Modify model's update to be more flexible

Accepts either the primary_key value that was previously accepted as
the first argument, or an array to supply as a where clause. The $data
array is still the second argument, followed by a $limit value as
available on $this->db->update().

We could potentially deprecate update_where() as well.
Remove $limit from update, shortcut update_where
Fix where clause when passing an id
permissions settings: fix text of "cancel" link

lang('bf_cancel') does not exist
Remove unnecessary quotes
install: fix warning from html5 validator (unnecessary ".." in url).

Shut the validator up, and save three bytes.

warning: Bad value "http://alan-desktop.scree.dyndns.org/Bonfire/install/.."
for attribute "href" on element "a":  Path component contains a segment
"/../" not at the beginning of a relative reference, or it contains a
"/./".  These should be removed.
Merge branch 'model/update' into develop (issue #590)
Remove unused class=ajax-form

"git grep ajax-form" shows this isn't implemented any more.
Un-break login redirect

Pull request #570 didn't fix login redirects; it just broke them in a
deceptively consistent manner.

 1. $ignore_pages still contained 'login',
    but the routed string is '/users/login'.

 2. Since login page was not being ignored,
    it would always become the requested page.

 3. When the login page redirected to itself,
    it would detect that the user was now logged in,
    and redirect to '/'.  Ignoring both
    the requested page logic and the
    per-role default redirect.

Fix the $ignore_pages list to contain routed urls.

Also fix the other user of $ignore_pages to check the routed url.

I don't _think_ there's anything wrong with the general principle,
using the routed url as a "more canonical" value.
Also fix the other user of $ignore_pages to check the routed url

(was supposed to be included in previous commit)
Template::redirect() - less hacky escaping of url

Thinking about it, I shouldn't have abused the title element for this.
It might be annoying when using a screen reader.
default theme: Allow front-end pages to set $page_title

The user module expected this to work.