Don't require compare_equals for returning values on stub_method

- ReturnValue is no longer a ValueArgument subclass, which brought along unwanted behaviors

[#39969975, #65424036]
Improve handling of `nil` values in the equal comparator and when matching method arguments

- Properly match methods invocations which include a `nil` argument [#63351266]
- Fix stringifiers for NSNumber and for generic objects to correctly handle nil values
- Fix the compare_equal matcher for two NSNumber's to not blow up if the expectedValue is nil [#69580148]
- Equal matcher fails explicitly when used with nil
  - In this situation, presumably the value passed in was intended to not be nil, hence it is treated as a failure
  - The be_nil matcher is mentioned in case checking for nil was the actual intention
- be_nil matcher can be used with block values [#42698619]
`rake upgrade` doesn't choke on paths with `~`
Merge pull request #230 from pivotal-brian-croom/stub-return-values-dont-need-comparator-or-stringifier

Stubs can return types that don't have compare_equals or a stringifier
Merge pull request #238 from pivotal-brian-croom/rake-upgrade-expand-path

`rake upgrade` doesn't choke on paths with `~`
Merge pull request #226 from pivotal-brian-croom/fix-invocation-matcher-with-nil-as-id

Improve handling of object-typed nil values during argument matching