Templatized ImageBuilder and ImageMap so if you know in advance what
kind of "extra" argument they'll be given, you don't have to write
explicit casts.
Added another test case to make sure an ImageMap declared as taking
in a particular type of "extra" information crashes properly when given
a different type.
Diary entry to go with the preceding two commits