Add support for optional shallow merging

Change `inheritance` param to `opts` oject parameter that supports both `inheritance` and  `shallow` options.

Keeps backwards compatibility with `0.1.0`. If third param is a `Boolean` it's considered as the `inheritance` value.