Match `Hash` implementation of `fetch`

An optional block can be passed to `fetch` that will be called in the
event that the variable is not set.

    fetch(:var) { fail 'var not found' }