with/without changes + tests

changes as per discussion found here: 
https://github.com/spumko/joi/issues/107

Added tests for the change in logic.
Had to change some other tests as they where actually checking for and instance of the base type as a key in the base type while the tests simply looked to see that the correct check was in place and that the validation failed...

I have a personal distaste for try blocks in javascript though I don't see a way around it here.