Automatically wrap multiline deprecation messages

Fixes #1336
Use String#lines to detect multiple lines
Updated travis build scripts (from rspec-dev)
fixup documentation per @lsegal's feedback
make default return void, as we dont tend to indicate return when its not useful
differ failed examples from normal ones
send extra failure content a failed example notification, fixes #878
Merge pull request #1388 from rspec/update-travis-build-scripts-2014-03-14-for-master

Updates from rspec-dev (2014-03-14)
restore `@param name [Type]` format and switch @attr to match
fixup a warning
[skip ci]
Merge pull request #1389 from rspec/documentation_tweaks

Documentation tweaks
Merge pull request #1390 from rspec/alternative_failure_content

Break out FailedExampleNotification
Minor typo and trailing whitespace fix.
Fix metadata filter to not blow up on unmatched nested hashes.
Refactor HashImitatable a bit.

Provide hooks for including classes to issue
their own deprecation and to set/get values
in whatever manner they wish.

Our upcoming metadata refactoring will rely on this.
Refactor metadata so that it is prepopulated.
Change nesting structure of example group metadata.

Historically, an example group's metadata hash has
exposed its computed values via a nested `:example_group`
subhash, and then exposed it's parent's metadata via
an additional `:example_group` subhash nested within
that subhash.  Example:

describe "Parent", :parent => true do
  context "child", :child => true do
    $meta = metadata
  end
end

`$meta` in this example would be a hash like:

{
  :parent => true, # inherited,
  :child => true,
  :example_group => {
    :line_number => 2, # and other computed properties
    :example_group => {
      :parent => true,
      :example_group => { :line_number => 1 } # and others
    }
  }
}

As you can see, this is quite confusing. Why should an example group's metadata have an `:example_group` key that returns its
own metadata?

This commit changes to the following example structure:

{
  :parent => true, # inherited,
  :child => true,
  :line_number => 2, # and other computed properties
  :parent_example_group => {
    :parent => true,
    :line_number => 1 # and others
  }
}

...which is far easier to understand. This also aligns
with how an example's metadata works: it's computed
properties are available directly off of its metadata
hash rather than off of a nested subhash.

We've changed from `:example_group` to `:parent_example_group`
for the parent metadata both because it's a better label
(an example group doesn't have an example group, but it may
have a parent example group) and also because it allows us
to provide backwards compatibility and deprecation notices
when the `:example_group` key is accessed. Note that an
example's metadata hash continues to have a `:example_group`
key that returns the group's metadata; this is not deprecated.
Move more of the metadata initialization logic into the populators.
Refactor metadata so it does not subclass hash at all.
Simplify a few things related to :parent_example_group.

- Always have a :parent_example_group key. It'll return
  a blank hash if there is no parent example group.
- Simplify how `full_description` is built.