[change] JSHint config to allow == null
[add] test and lint as grunt tasks

"jshint" and "mochaTest" weren't cutting it for me
[add] logic to determine if parens need adding

This makes the printing a lot prettier. Order of operations can be
defined any way, but I chose to do it the way actual maths does it.

(a) + ((b) / (c)) becomes a + b / c
Merge branch 'add/infix'