bugfix(errors): Allow 404 and 405 errors to have message body

According to RFC 7231 (which obsoletes RFC 2616) all 4xx error messages "Except when responding to a HEAD request, the server SHOULD send a representation containing an explanation of the error situation, and whether it is a temporary or permanent condition." (http://tools.ietf.org/html/rfc7231#section-6.5). Section 6.5.5 which is specific to the 405 message does not negate this; nor does section 6.5.4 for the 404 message.

This change set updates the 404 and 405 messages to make the representation optional so developers using Falcon can decide whether or not to provide it. By default the OptionalRepresentation mix-in that is introduced behaves like the NoRepresentation mix-in if the developers does not provide a description, thus keeping the existing functionality intact (e.g no breaking changes in functionality).

While this change set only changes 404 and 405 errors, the default functionality for all errors presently using the NoRepresentation mix-in should probably be the OptionalRepresentation mix-in instead so that developers can choose appropriate responses for the WSGI applications.
Sorry, missed this bug earlier: Since we are accepting kwargs now, the caller may include a headers param. We need to respect that param if it's passed, and just set the Allow key on it.

Would be good to add a test to cover this...