Node#attribute can safely be passed a block with no arity

This commit also adds a spec ensuring that the context is
a Bldr::Node instance. This behavior is a breaking change
from how bldr currently operates.

The behavior itself was introduced in d0bfbd8, but this commit
adds a spec for it.