The previously-scattered image opening logic has been refactored to a
single ImageDescriptor struct/Object available to both JS and C++ code
This removed about 150 LOC but more importantly reduces the complexity
of adding/exposing new operations that require an input image.