Unset value in extract method, not calling method

For DRY purposes, the unset should be performed in the extracting
method, not the method that performs the calling.

Does require a pass-by-reference, but it saves a ton of repetitive
code and makes it easier to work with objects
setBody should not check type

Strings and objects are valid body components, the client should
pass it through directly instead of checking for an array (and
throwing an exception)
Allow yaml test runner to work with empty objects
Fix installtion documentation formatting
Fix documentation link to php version requirements page
Add documentation about ignore parameter
[Docs] Update default configuration list