Organized lib files into sub-folders and export them.
Moved context validation to be a utils method.
Added a variation that returns self.
Added a variation that can return either a promise or self, depends on if a callback is given.
Release 0.0.2