Allow setting custom error messages in policies

**Update: See updated syntax in comment below.**

Regarding the subject of custom error messages, we've so far established a few boundaries:

* An authorization query can fail for multiple reasons, so one query might need different error messages.
* User facing errors should be presented in the user's language.

How about keeping the logic that selects error messages in the policies.

```ruby
PostPolicy < ApplicationPolicy
  def create?
    user.admin? or not post.published?
  end

  def create_failed_message
    "You cannot create a published post unless you are an admin."
  end
end
```
With `I18n` (`I18n` is not introduced as a dependency):

```ruby
PostPolicy < ApplicationPolicy
  def create?
    user.admin? or not post.published?
  end

  def create_failed_message
    # You can branch here if you need to select 
    # error messages based on certain conditions
    I18n.t( "pundit.posts.create")
  end
end
```

@jnicklas What do you think of the underlying idea?

Related to #38 and #66.

*Updated*: Updated error message method name to `#{query_without_?}_failed_message`.