add a test harness which runs jshint across the source (wow, it's a mess)