Add failing test to demonstrate hamt collision bug

$ prove
t/cache_ferite-hamt-collision.t ..... Failed 1/1 subtests
t/cache_ferite-no-hamt-collision.t .. ok

Test Summary Report
-------------------
t/cache_ferite-hamt-collision.t   (Wstat: 0 Tests: 1 Failed: 1)
  Failed test:  1
Files=2, Tests=2,  2 wallclock secs ( 0.01 usr  0.01 sys +  0.01 cusr  0.03 csys =  0.06 CPU)
Result: FAIL
Add bootstrap script for intializing TDD MakefileTest.am

The goal is to be able to do something like this:

	$ make check

If something breaks

	$ prove test
Add simple stupid tap producer

If the need arises the we should choose a more mature tap producer [1].

[1] http://en.wikipedia.org/wiki/Test_Anything_Protocol#List_of_TAP_producers
Add test for ferite amt array
Bugfix ferite_loworderindex breaks when shiftAmount is 2

Buggy behavior is shown by ferite_amt-hash-index-from-hash.c

The buggy code was:

    return (((index << (shiftAmount - AMT_SHIFT_AMOUNT)) >> 27) & 0x1F);

where shiftAmount is unsigned int and AMT_SHIFT_AMOUNT is 5.

The function was called successively with shiftAmount set to 32, 27, 22,
17, 12, 7, 2 (minus AMT_SHIFT_AMOUNT each time).

When shiftAmount is less than AMT_SHIFT_AMOUNT,

    shiftAmount - AMT_SHIFT_AMOUNT

becomes:

    (unsigned int)(2) - 5

which is a small unsigned integer that underflow to a very large
unsigned integer hence the buggy behavior.

Note that this bug has no effect on the behavior of the AMT as the value
is expected to be any value within 0-31 - the only visible effect is in
the actual placement of the hash items in memory.
Add ferite_hamt_index() with tests

This function is for when the hash bits are exhausted - the case when
the hashes of two different keys collides.
Bugfix amt set and get did not handle hash collision

Upon hash bits exhaustion we use the bits from the key.

While this is not an optimal source of bits due to the non-random nature
of the ascii characters in the keys which results in non optimal use of
RAM, it should be good enough for use here under the assumption that
hash collisions are rare.
Teach ferite amt how to delete collided hash items
ferite_hamt_hash_gen(): Avoid unnecessary strlen(key)
Remove unused macro AMT_SHIFT_AND_CHECK
Merge branch 'fs-3903-hamt-handle-collision'
Bump version to 1.1.18-20

The release in ferite.spec is 19, hence the bump to 20 here.