Warn when referencing missing images from guides.

Achieving this required extensive refactoring of how the images get
processed.  Previously the existance of images was looked up after
all the @img tag had been replaced.  Now the check for existance is
part of expanding the @img tag, so the check happens also for images
in guides, for which the check didn't occour previously as there is
no images copy step in there.

The old Images class has been replaced with ImageDir and ImageDirSet.
Add width and height attributes to expanded @img tags.

Include the Dimensions gem to retrieve image width/height meta-data.

Additional %w an %h placeholders to --img-tpl template.
Report unused images in guides.

Both the ImagesDir and ImagesDirSet now have #report_unused method.
No more is the unused images reporting part of #copy method.

Also take care to ignore the icon.png and icon-lg.png files inside
guides - these don't have to be reference by @img tag, but are
used automatically.
Move ImageDir and ImageDirSet to Img:: namespace.
Extract Img::Writer class from Img::DirSet.
Extract #format_guide method from Guides#load_guide.

Just an ordinary refactoring.