Update docs
Fix error in test set-up
Make sure resolve/reject can only be called once when dealing with delayed thenables passed in
Refactor internal state handling