Rename remote task to request

* Renamed remote task -> request and moved to protocol.py;
* Used `to_dict` method instead of `request` property for request objects;
* Renamed `name` request property to `task_cls`;
* Corrected unit tests.

Change-Id: I6133748ab5064391480f031971c38a56cb7f4f9f