(refactor) Bound the Error trait with Send

Any struct which wants to support `cause` will need to contain
a `Box<Error>`, however, since `Error` is not bounded by `'static'`
this is impossible, and the struct needs to store `Box<Error + Send>`.

This changes rust-error to use this type internally, so as to discourage
use of `Box<Error>` without the `Send` bound.

[Fixes #2] - thanks to @andrew-d for reporting.
(refactor) Add Show impl for Box<Error + Send>
(cleanup) Removed unnecessary Any bound.
Merge pull request #3 from reem/refactor/static-bound

(refactor) Bound all uses of the Error trait with 'static