Modified json types and deserialization in reports. Closes #377

Now all data that come from server is deserialised using  JsonConvert.DeserializeObject. Some data like rate, sum, time entries per project are available for future use. fixes #377
PrepareResponse does two things:

- The time measurement is used to recalibrate the internal time - we don't trust users device time, we always sync it to our server time.
- Throws an exception when the server returns an error

The time calibration is nice to have in the reports function (not a requirement). Question is, how network errors handled for reports currently? Throwing the exception is usually the easiest way to say shit hit the fan.

(If there truly is no point in PrepareResponse, then you should also remove the unused private function from the class.)