Added enforce function

I added the enforce function. This will throw errors instead of returning false (similar to the top level ensure function). I moved the top level ensure function to ensure.is() (hopefully in the future this can be changed back to the way it was before). Instead of ensure.isNotString() I changed the method to be ensure.not.isString(). This made for less code and will hopefully make it easier to maintain. I also put all the functions into an IIFE so they aren't automatically added to the global scope (certain functions are added manually at the end of the IIFE).