First pass at improving Persona error handling

Rather than using ```fail()```, which causes an AJAX error in the client, we return the failure reason back to the client to handle.

While this pull request traps the behaviour described in #36, the route cause still needs catching earlier. Need to trap when the site is accessed using an address other than that used in the Person audience (either using an alias, or a different protocol).

This pull request has an associated wiki-client pull request (link to be added).