Improved recursive error management

Instead of referencing sub-errors in upper-level errors in the _scan private methods, the original error will be preserved, but its key "path" will contain an array of the successive keys making the path of the failing value.
Added the throws argument to the #check method

That feature is untested yet, but the method is still working with its default behaviour when the flag is not set.