Swapped Future[A] for Task[A]

Addresses issue #23 

When i originally started writing the framework i chose to go with Future.
In retrospect this was a mistake. So i did the work to swap out Future for
Task. Using Task will allow us to get better more natural concurrent error
handling without having to manually nest Validation within every Future that
can possibly fail.

Ping @Agrosis