be_true/be_false is deprecated.
Refactor: reduce duplication by moving logic into super class.
Refactor: eliminate unneeded superclass.
Fix source line in any_instance deprecation message.

Before, the printed line was from where a particular
instance got its `any_instance` recordings played back,
not from where the `any_instance` block originated.

This was very confusing :(.
Ensure the line in the warning is the block's source location.

Note: on 1.8.7, we can't always make that work because
Proc does not have `source_location`, and even if we
define `source_location` on it manually, it loses that
when we forward it on using `&block`.
Don't warn if the block ignores arguments.
Silence `any_number_of_times` deprecation warning.
On 1.8 a block doesn't indicate if it ignores args.

Proc.new { }.arity # => -1
Proc.new { |*a| }.arity # => -1

The first one returns 0 on 1.9, allowing us to differentiate
these two cases, but returns -1 on 1.8 (as shown above).
Thus, we can't differentiate here and we have to err on
the side of printing the warning.
Merge pull request #414 from rspec/address_warnings

Address warnings