Tasks api

Implemented code for `entities.Tasks.poll`.
Implemented the code that allows you to poll the status for an aysnc
task (such as a repository synchronization for example). The method
'polls' for the status of the task and returns it once it is no longer
running (`'pending'` == False) or it will raise an exception if we go
beyond the 'timeout'.
This would cause the Raise to occur all the time. I would rather check after the while loop ended. This is how I reimplemented it in the test that requires it.

```
while(task_status['pending'] == True  and time.time() < timeout):
            sleep_for_seconds(delay_seconds)
            task_status = self.read(auth=auth)

        if time.time()>=timeout:
            raise TaskTimeOut("Timed out polling task {0}".format(self.id))

        return task_status
```