Add #major!, #minor! and #patch! methods.

These methods don't mutate the original object and create a new
`Semantic::Version` object. They just increment the proper version
term and resets the needed terms in the new object.

The are interesting methods if you have the idea of auto generate
releases with an automated script.