Switch to using scons for most of the build

In order to move libkoki towards a sitation in which we can properly
install it, and perhaps do some prerequisite testing, we could move to
using autotools.  Autotools has quite a reputation, and I think
rightly so.  Looking around at the available options, scons seems like
it might be the best around.

This patch switches much of the libkoki build to use scons.  There are
some things that remain unconverted, including:

 - AUTHORS file generation: This has no prerequisites except for the
   git history, so will need a scons builder that interacts with git.
 - ditz stuff: Haven't found a scons builder for ditz, so this will
   also need a builder writing.
Build the things in /test and /tools with scons
Ignore take_photo binary
Fix linking against libkoki

I had misunderstood how one should link against a shared library using
scons.  One should make use of the LIBS and LIBPATH environment
variables.
Use a u32 for storing the returned integral image sum

koki_integral_image_sum returns a u32, because it can be greater than
0xffff.  koki_threshold_adaptive_pixel was storing the return value in
a u16, which was obviously not the right thing to be doing.

This patch fixes it to be stored in a u32.
Add and use a label_t type for numbering labels

Currently, labels are represented as 16-bit numbers.  With large
images, more than 0xffff regions may need to be labelled.  For
example, by feeding a 3264 x 2448 pixel image from my compact camera
into marker_info, bad things happen -- like an infinite loop waiting
for a 16-bit integer to reach 80000...

This patch replaces the type used for label numbers with a label_t
typedef.  This patch keeps it as a uint16_t for the moment, as it is
likely to negatively affect performance for 'smaller' images.
Adaptively threshold unwarped markers

This patch significantly improves the reliability of the extraction of
codes from unwarped markers.  Unwarped markers were being thresholded
'globally' (i.e. one threshold was applied against all the pixels of
the image) with a threshold that had been calculated using a heuristic
that attempted to balance the number of white and black pixels.

Now, as with the thresholding of the whole input image, the threshold
applied to each pixel within the unwarped marker image is based upon
the pixels around it.

This was the result of the work initiated by this thread on
srobo-devel:
https://groups.google.com/d/topic/srobo-devel/wa4ERK_9no0/discussion

We didn't originally adaptively threshold unwarped markers because it
appeared to reduce performance.  This turned out to be due to a bug
that was fixed in 7cd671161b94.

On Chris's set of test images, marker identification is improved from
this:

    Results
    ========
    True positives  728
    True negatives  995
    False positives 0
    False negatives 267

    Precision 100.0%
    Recall    73.1658291457%
    Accuracy  86.5829145729%

to this:

    Results
    ========
    True positives  826
    True negatives  995
    False positives 0
    False negatives 169

    Precision 100.0%
    Recall    83.0150753769%
    Accuracy  91.5075376884%
Merge branch 'master' into scons
Reduce code duplication in koki_find_markers_*

koki_find_markers and koki_find_markers_fp do very similar things.
This patch removes the code duplication that was within them by
moving their shared functionality into a separate function.
Add and use macros for indexing aliases and clips

We were previously using g_array_index each time we indexed these
arrays, and having to type-out the type every time seemed a little
boring.  This patch adds two macros -- one for alias arrays and one
for clips arrays -- that act like g_array_index but don't take the
type as an argument.
Merge branch 'master' into adaptive_marker
Merge branch 'master' into scons
Check the max number of labels is not exceeded

Yesterday it took me a while to realise what was going on when I
presented libkoki with an image that contained more than 0xffff
regions.  This patch adds an assertion that causes it to bail if there
are more than the maximum number of regions.
Merge branch 'master' into adaptive_marker
Merge branch 'master' into scons
Add an install target

Install the library into $DESTDIR/usr/lib and headers into
$DESTDIR/usr/include/koki
Add doxygen to the pre-reqs

It's needed for the docs.
Add Ditz to the pre-reqs

It's needed for the bug tracking stuff.  Also mark ditz and doxygen as
slightly separate and annotate why.
Add myself to .mailmap

For the last ~10 years, I have been "Rob", but for some reason I only
got around to letting git know this recently.
Update AUTHORS file