Added utilities for creating validation NSErrors and querying for nested error keys.
Dictionary and array validators reports all errors.

* Dictionary and array validators use the new helpers for
  creating leaf and branch errors.
* Tests that ensure validators return leaf or branch errors.
Replaced convenience functions for creating errors.
Added few tests that demonstrate how error keys are supposed to work.

These tests are redundant as we already have tests for all aspects of
creating errors and extracting error key paths. But, it's nice to have
a few tests that showcase the whole picture. I'm ambivalent and will
probably delete these tests in the future.