Adding image cache.

Previously the code had to be structured to avoid calling
load_image too often (e.g. the images had to be kept in
static members). This allows costumes to be loaded in normal
constructors thus simplifying the code.
Merge branch 'airport-problem' into stage-3-solution
Merge branch 'stage-3-solution' into stage-4-solution
Merge branch 'stage-4-solution' into stage-5-solution
Merge branch 'stage-5-solution' into stage-6-solution
Merge branch 'stage-6-solution' into stage-7-solution
Merge branch 'stage-7-solution' into stage-8-solution