Reorganised errors, fully async API

- Validation errors contain all information needed to reformat/display them in UI for example
- Fully async operation: works with both promises and traditional callbacks. This also allows for async custom format validators (see updated README: https://github.com/oleksiyk/z-schema/blob/master/README.md)