Merge changes from imagescan-3.1.0

Conflicts:
	Makefile.am
Ignore new build artifact
Move Boost build parts out of the with_included_boost conditional

Doing so allows for direct building of these parts without a need to
reconfigure.  Automatically triggering their build still depends on
the configure time decision, but the various targets are now always
available.
Align Boost.Build to upstream documentation
Merge changes from imagescan-3.3.0

Conflicts:
	bootstrap
Drop duplicate upstream changes (7433bcc9)
Ignore new/changed build artifacts
Work around missing test inputs

It looks like the upstream source tarball was built with support for
the Boost.Test unit test framework disabled so the EXTRA_DIST didn't
take effect and all data/*.jpg files are missing.  The EXTRA_DIST is
made unconditional now but all entries are commented out until files
are made available.  Affected tests have been commented out as well.
Work around hanging indentation tests

Differences between actual code layout and the layout expected by the
uncrustify configuration are so large as to saturate the pipes used to
communicate with the utsushi::test::command_line.  Let's forget about
the diff for now and only warn about non-compliant files.

The warning message has been fixed up as well.  BOOST_*_MESSAGE macros
append a newline themselves.
Add a default device query to utsushi::monitor

The utsushi::monitor singleton maintains information on all scanner
devices, including those that are not supported yet or for which a
driver has not been installed.  Hence, the size() member function
cannot be used to determine whether an application can scan.  The
new query returns a non-empty string if it can.

This fixes unit test failures when tests are run with unsupported
devices attached.
Fix format string parameter spec
Align extended_scanner implementation with compound_scanner

Device defaults are now kept in constant members and scan parameters
are reset to their defaults before every scan.  The set_up_sequence()
member function has been split over the many helper functions that the
base class provides.  Support for application initiated cancellation
of scans has been added as well.
Don't require drivers to implement a scan-area option
Fix potential deref of a standard constructed shared_ptr
Be more paranoid about setting scan parameters
Document purpose of scanner class member variable
Make most scan parameters optional

The lowest common denominator ESC/I protocol level (A1) only defines
setters for the resolution and scan area.  Although just about every
ESC/I scanner will support more, let's not assume all do.
Seed option defaults based on device information
Add support for (almost) all hardware options

This does not take into account whether options are actually supported
by the device yet.  Nor does it account for documented restrictions on
the option values.

Support for custom gamma profiles, color matrices and dither patterns
is still missing, as is an option to control the main lamp's lighting
mode (whatever that may be).
Merge changes from imagescan-3.4.0

Conflicts:
	drivers/esci/scanner.cpp
	drivers/esci/scanner.hpp