ImageUtils.getSizeAndType() utility plus tests

I haven't used Promises enough yet to really grok chained promises like that. It seems natural to use promises all the way down, but I think I'd screw it up.  So Promises at the API level, and callbacks that I can reason about effectively for the implementation.