feat(validate): Support for promises

Fixes #257