Stub arguments can now be specified .with(varargs)

- Finishes [#47205477]
- Fixed issues with argument type matching; Finishes [#48994375]
Methods can be stubbed multiple times

- Arguments must differ from previous stubs
- Multiple stubs on the same method using Arguments::anything or
  Arguments::any is disallowed to avoid ambiguities
- Spies call their default implementation if stub arguments don't match