Fix spec so it tests what it is meant to.

The context of the spec were identical to the
"with a string" one above it, but this one was
meant to be for a non-string.
Refactor metadata specs.

Rather than directly creating the metadata instances,
use RSpec's public `describe/it` API to create metadata
as a user would. This gives us greater flexibility to
refactor the metadata implementation, as our tests are
no longer coupled to the private `process` and `for_example`
methods.
Address 1.8.7 failures.

LocalJumpError:
       unexpected return
Stop calling `Metadata.new` in this spec.

This decouples us from how the metadata is created.