Create repo structure
Initial driver registration mechanism

Also added the basis of the upekts driver, which is the first I'll
implement.
Basic device discovery infrastructure
open/close device functions
Expose driver info to library users
Add 'verify' example skeleton

This will become an example program to enroll a fingerprint and then
verify a finger against it.
Documentation update
Initial fingerprint data representation ideas
Enrolment infrastructure
Add logging infrastructure

Also added some debug/error messages to existing code. For now debugging is
always on, this will be made optional later.
Add 16 bit endianness functions
Enrollment tweaks

upekts will need to know when the first enrollment stage is attempted for
the first time, so add an __enroll_stage counter which actually indicates
the next stage to enroll. -1 is a special value and it means 0 is next *and*
it is the initial attemt.

Added more debug output to the enroll handler.
Added new fp_enroll_status codes for too short or uncentered scans.

Changed the print_data allocator to consider the device rather than the
driver, this feels more natural. Added missing return value.

Make fp_enroll_status codes start at 1. 0 can now be used as a
special/temporary value by the drivers. Also check that we aren't exceeding
the number of enroll stages.

Also add a missing exit() call to the verify example and update for the
above.
Build system tweaks

Add configure-time controls for logging
Set some default compile-time warnings
upekts: communication handling and enrollment implementation

This completes an enrollment implementation for the upekts driver.
It's based on code from libthinkfinger, but as there seemed to be many
unknown details there, I spent some time analysing the bus messages in
more detail and have effectively rewritten almost all of the borrowed code.

Note that libthinkfinger is GPL licensed, so that reflects on this code too.
At release time I will ask them if they are OK for me to relicense it.
Enrollment: improved error reporting

Convert enrollment function to return a signed integer, which is negative
on error or corresponds into fp_enroll_result otherwise.
Now we can treat a 'FAIL' condition differently from an actual error: fail
means that enrollment didn't complete because the data was nonsense or
whatever (e.g. scanned a different finger for each stage?).

Updated upekts accordingly.
Verification infrastructure

Similar model to enrollment.
Unhide fprint_data buffer from drivers

May as well keep things out in the open.
upekts: verify implementation

We can now verify live fingerprints using the verify example.
Error handling during verification needs to be improved.
Rename verify to verify_live

...to make way for an enroll example which stores on disk, and
a verify example that loads from disk.
upekts: support large messages

Add support for messages with a length greater than 255.
Also picked out a few more retry codes.