switch to a whitelist and exception raising

So this ended up as a pretty huge change, I'm sure it still has some small things to clean up. The two major differences in the API are

* The whitelisted tag support
* Raising an exception if any disallowed data is parsed, rather than just returning that data in its more raw form

Does this match with the direction you want to take the safe_yaml gem? I wouldn't have minded making the exception raising an option, but I didn't see a great way to do that while still allowing the normal YAML loading functionality to do the heavy lifting. If that doesn't meet the needs of your use case, I totally get it.