Extract FeatureTest

The two feature tests were also very very similar; so I wrote a very
tiny ruby file that:

1. Requires the other files a feature test needs to run
2. Creates a custom type of test called a FeatureTest that extends
   `MiniTest::Test` and includes the `Capybara::DSL` and
   `Capybara::Assertions`

New Methods
===========

`require_relative` - looks for the given file located relative to the
current filei and requires it.
Test creating an invalid overheard

Our test trys to create an overheard without a body. In this case, we
want our user to stay on the same page and see a nice error message.

Unfortunately, it looks like we redirect to "/" even if the user
doesn't provide a body. How sad!
Add validation that Overheard must have a body

Here we're doing two things:
1. We're creating a validation that will prevent an overheard from being
   created if a body isn't provided
2. We're only redirecting if the creation was successful; otherwise we
   re-render the new overheard form
Display overheard body error to the user

Bam! We've got errors being shown to the user. Important things to
consider:

1. `views` have access to `@instance_variables` defined in routes. This
   means we can access the `@overheard` variable inside of our
   `new_overheard.erb` view.
2. Every `Datamapper::Model` has an `errors` method that contains
   validation errors that were caught when trying to create or validate
   the model.
3. I had to update the assertion that tested for the error because I
   used the wrong words. Even though the page was showing the error, it
   didn't exactly match what I expected.

New Methods
===========

`Datamapper::Model#errors` - Provides a hash of errors caught when
validating a model. Each property of the model is a key in the errors
hash, and an array of validation failures is the value. If there are no
validation errors for an attribute, it returns an empty array.