JsonLoader extracted from SpriteSheetLoader

closes #147