Added returnValues functionality to spy strategy

This pull request addresses issue #660 The intention was first to update returnValue method to accept varargs and return them one by one on subsequent calls. However, it will not allow a single return value to be specified for all calls to the spied method.
Hence, a new method; returnValues().

It takes the varargs parameters and return them one by one till all are over and then returns undefined for subsequent calls to the method.