#291 - slice function will not crash if keep_key is not in the hash

If `slice([:some_key])` is called on a hash that doesn't contain `some_key`, an error will be raised and the application will crash.

This PR allows keep_keys to be specified that are not in the original hash.