Minor refactoring

Renamed the customTypes private variable as _customTypes.
No more public #validate method

The #validate method is no more public. It is only used to generate a potential error when scaning if an object matches some given type.
It is now basically the core of the #check method, that will throw an error if the object does not match the type.
The private function is now called _scan.
_scan now returns an actual Error instance

The keys are still exactly the same as before at the moment.