One big test for client.

* Note what not testing:
  - if ajox req never returns
  - if it is nighttime
  - if server returns response we don't understand
  - if canvas cannot be found
* Why do we not test these things? Because we would have to duplicate so much testing code.
Abstract background filling and circle drawing.

* Use new canvasRenderer to do drawing to canvas.
* Abstracts low level drawing to an interface that is more meaningful to our app.
* Reduces repeated code.
Make big test less big with a canvasRenderer mock.

* No need to mock canvas, any more.
* Mock canvasRenderer fns and check they get called with right args.
Split client into ajax get(), getTime() and displayTime()

* Get request (IO) is completely abstracted into get().
* Now have clean, reusable ajax get fn.
* IO now separated from rest of program
* Display code is separated.
* Time data parsing is separated.
* Note how fn names are way more descriptive.
Way better tests for parsing time, drawing right drawing, drawing to canvas.

* Can now test all the different cases of the different pieces of the app.
* Added async testing to tester.js
* Added beforeEach() to tester.js
* Added mock() to tester.js
* Used these features to write better tests.