Modify gem structure to allow clean mixins

Mixing Deterministic into a class didn't quite work, so I moved some thing around a bit to allow mixins.

The biggest change is moving from `Either.attempt_all` to just `attempt_all`. The reason I did this was because when you `include Deterministic` in a target class, you don't get access to the `Either` class in that target class; you still have to type `Deterministic::Either` anyway.

In the end, `attempt_all` is just [a simple helper method](https://github.com/mindeavor/deterministic/blob/mixins/lib/deterministic/either/helpers.rb).

If you want, I can include backwards compatibility for the old `include Deterministic` style. However I'd argue that this is poor practice, and I wouldn't want to encourage others to use it.

[Check out the updated readme](https://github.com/mindeavor/deterministic/blob/mixins/README.md) for the new documentation.