Fixes #119: Allow overwriting methods in Mash

#### Changes to Mash

When a method is overwritten, you can still access it by passing `#hash_<method_name>`. For an example, see the included documentation.

This is a breaking change since it changes the behavior of overridden methods, so it should require a version bump for Hashie to adhere to the [Semantic Versioning][semver] policy.

#### Smash

Added as a safe alternative to Mash. A Smash prevents the user from overwriting a method with an attribute. This is more along the lines of the original Mash, except that it raises an `ArgumentError` if the user tries to overwrite a method with an attribute.

[semver]: http://semver.org