Renamed EachPixel -> MapColor, added EachColor

EachColor simply iterates over the colours without creating a new
image, so is a lot more efficient for just querying the colours in
an image than MapColor.
Started writing a level adjustment tool
Levels curve now linearly interpolates points.

There are a lot of bugs, it doesn't like just two values for instance,
and it sometimes produces unexpected results.

At some point this needs to be replaced with a better solution, but
that will require some research.
Fixed typo: gradient of level curve not calculated properly
Add and fix docs for levels command
Ignore images in repo
Added ability to define external img tools.

This allows img to be extended with other shellscripts/go/ruby/whatever
as long as it is on the path and called img-something it can be
executed with 'img something args'.

Will define a proper interface next; so for example, help strings can
be added to the 'img help' interface.
External command interface, for help integration.

External commands now must provide a few flags (--long, --short,
--usage) which provide information img can use in help printouts.

Also hijacks the --help, -h arguments and provides standardised
help screens using the information gathered.
Only show externals help section if any exist
Select RGB channels, if none selected
tint help string had tab in; removed it
Added fit option to blend.

This fits the blend layer (top layer) to the size of the base image.
Fix external help check blowing up with args length
Added docs on External scripts