added some validations and fixed the implementation of Pimp.cast to match the description of it by Domenic
added tests for Pimp.cast and tests for the validations included in Pimp.all, .race, .allFail and .denodeify