add double
copy specs from rspec-mocks
change stub to spy
fix called names so it works with rspec predicates
update syntax for Spy.on and optimize Spy#unhook
simplify method visibility checking and setting
raise error when no spies are removed on Spy.off