IW: Start testing

Minimal karma testing integration. 
Was wondering, do we need to ```export``` the subclasses if they aren't going to be instantiated directly outside this file? e.g. the tile source 'factory' method instantiates these, so it might be cleaner to keep the interface of this module to just the base class. That's what I did for ```Camera```. Might be advantages to expose it too (debugging if nothing else).