Fix def to only evaluate definition function once.
Add support for when(/* args.. */).thenReturn(returnValue)

* Supports chaining for multiple registered
  `when .. thenReturn`s
* Support for `jasmine.any` and
  `jasmine.objectContaining`

[Finishes #78322718]