Allow accessing of attributes within the namespace

@sethvargo 

When I started replacing my taps with this, I lost the feature of being able to access attributes within the tap namespace.

For example
```ruby
node.test.tap do |test|
  test['new_attribute'] = File.join(test['existing_attribute'], 'bin')
end
```
would work, but
```ruby
node.namesepace 'test' do
  new_attribute File.join(existing_attribute, 'bin')
end
```
Wouldn't. This PR would allow it to work.
I think we should actually raise some kind of error if the attribute isn't defined. As this is written, a simple typo would return `nil`, making debugging very difficult. The easiest solution would be to use `deep_fetch!` instead.