Rewrite the ThumbnailImage constructor to take parameter array
This is required for a full resolution of bug #32987. Per Brion's
commentary on that bug, for the long-term preservation of
sanity we can't just keep adding arguments to the constructor
whenever a new feature is added.
Instead, we can have an array of optional parameters. At the moment,
this situation is a bit iffy for width and height: we should really
specify either a default height / width or error if one is not found.
I'm open to ideas on that, but it's not a big deal since nothing
uses the new syntax yet. When that is agreed, I'll convert all usage
in core and maybe some extensions too.
Change-Id: I116f71aeb90ef7c786f0874b150c7bcca527e106