Tests should create virtual device instead of fail.

sane-test(5) provides a virtual device backend, designed for testing
software that interacts with SANE.  If PyInsane tests fail to find any
devices, we should create a test device instead.

Signed-off-by: Ross Vandegrift <ross@kallisti.us>
If a scanner can't perform a function, skip the test.

Some of the tests assume specific things about the capabilities of
the devices currently active.  Running tests against sane-test and an
fi-4120C2 revealed these don't always hold.

Signed-off-by: Ross Vandegrift <ross@kallisti.us>