Error handling refactoring

This refactoring uses promises everywhere it is possible. So most of the callbacks have disappeared and errors handling is cleaner.

API breaking changes : #all() and #query() return now promises.

Tests have been updated to use promises too. They also check that Prismic API home is not queried multiple times.