fifo: Various aesthetic fixes and tiny optimizations

 - Document implementation limitations
 - Use uint32_t and uint_fast32_t instead of size_t
 - Order struct members descending by size
 - Remove redundant "size" member from struct
 - Add asserts on read and write sizes

Signed-off-by: Morten Hustveit <morten.hustveit@gmail.com>
ts-merge: Added the "equal" aggregate function

Use this aggregate function if values with duplicate keys are expected to
exactly equal, and can be merged into one instance.  The program will abort if
this is not the case.

Signed-off-by: Morten Hustveit <morten.hustveit@gmail.com>
Added the (signed 64 bit) CA_TIME type

This type will store the number of seconds since 1970-01-01 UTC.

Signed-off-by: Morten Hustveit <morten.hustveit@gmail.com>