Add overload of failure() that captures file/line information

Resolves #4.

@rnapier I based this on your code from https://github.com/LlamaKit/LlamaKit/issues/4#issuecomment-57240475 (including style), but added a separate `failure()` function and removed the default value for the `error` argument to make it work.