Explode validator: allow any value type to be validated

Currently, the explode validator only allows string and array types to be tested. This PR relaxes the type checking to allow any type to be passed in isValid(), and defer the validity check to the bound validator(s). This allows the Explode validator to be more flexible and handle additional use-cases.

Also added support for iterating Traversables (not just arrays).