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.
This is a mixing and the parent class when calling super will be the next in __mru___. At last instance object is the parent class in new style classes.
If you call a parent constructor directly you are avoiding default python __mru__ that dependes on the order you declare inheritance.
IMO this can be tricky and conduce to unexpected results.
In your code, you can change the order of mixing and HTTPError declaration in inheritance and the result will be the same. It is expected that the first class declared is called first according to mru