(feat) New errors module for bundling common error types.

The new errors module will hold all common error types and
wrappers used within Iron or for consumption in downstream
middleware. This removes the need for many re-implementations
of common errors like FileError, which is added in this commit.
(refactor) Use the new FileError wrapper instead of IoError

The signature of Response::from_file has been changed to return
Result<Response, FileError> instead of IoResult<Response>, since
the former is much easier to consume within a handler.

[breaking-change]
Merge pull request #205 from reem/feat/errors

Add a new errors module and use it in Response::from_file