Improved allOf, anyOf, oneOf errors

When ids are not present in subschemas referenced by `allOf`, `anyOf` and `oneOf`, the errors display `'[object Object]'` in place of the id.  e.g. `'is not any of [object Object],[object Object]'`

This change modifies the error output to use `id`, falling back to `title`, then `$ref`, and if none are present it uses `'<subschema>'`.