Accumulate ops before pushing them to the pipeline.

Instead of pushing the op to the pipeline, let the changelog reader accumulate them for a while. At regular interval, or if the queue becomes full, push the oldest operations to the pipeline.

That way it is possible to ignore some of the records we can't normaly ignore. For instance if a CREATE is followed by a CLOSE, the CLOSE can safely be removed since RH will do for the CREATE what it would have done for the CLOSE. This optimization is only possible if neither have been processed by the pipeline yet.

Added 3 new config options to the changelog reader:
- queue_max_size: size of the internal operation queue; do not keep more than this number of operations
- queue_max_age: do not keep operations older than this many seconds
- queue_check_interval: check whether some operations in the queue should be flushed at this interval

Added test 700
Use a hash table to keep track of changelog record with same id instead of browsing the whole op_queue.
(WIP) Store uid and gid in the database, instead of names. That replaces the owner and gr_name attributes with uid and gid.

TODO: request with wildcards in username or group names are not supported.
Re-organize the changelog reader to process the renames diffently. If a CL_EXT is expected, temporarily store the CL_RENAME record. If the next operation is the expected CL_EXT, then process both at the same time.

The code is still doing UNLINK/RENAME/EXT, but eventually RENAME and EXT will be collapsed.

This fixes test 108b.
Add list.h to Makefile.am
When a changelog thread terminates, clear the commited records from Lustre's changelog.

Previously, the records processed and commited but batched for clearing would not be cleared upon completion of the thread.
Fix Cray copyright string.
Added a Cray copyright.
New changelog reader options: mds_has_lu553 and mds_has_lu1331.
It is not possible without being intrusive to know whether the MDS supports either LU-543 or LU-1331, which are both used for renames.
To check whether each option must be set, create two files in an empty directory and move one onto the other:
  touch foo1 foo2
  mv foo1 foo2

Then look at the changelogs (08RNMFM and 09RNMTO):
22500778 08RNMFM 18:28:03.944224249 2013.05.23 0x0 t=[0x2000032e0:0x1107:0x0] p=[0x68300001:0xf6bf042a:0x0] foo1
22500779 09RNMTO 18:28:03.944224249 2013.05.23 0x0 t=[0x2000032e0:0x1107:0x0] p=[0x68300001:0xf6bf042a:0x0] foo2

If the 't' fields is the same, then both mds_has_lu543 and mds_has_lu1331 must be set to FALSE.
If the 't' fields are different, then mds_has_lu543 is TRUE.
If the event flag (hexadecimal number before "t=[") has its bit one set (0x1), then mds_has_lu1331 is TRUE. If it is not set (0x0), then mds_has_lu1331 is FALSE.

Remove the configure options --enable-cl-rename-overwrite and --enable-lu543 since the client's capabilities do not reflect those of the server.
Do not try to remove a db record unless it's an UNLINK event.

When using changelog with Lustre, if a file doesn't exists anymore on the filesystem, we'll get an UNLINK record eventually.
If a file has been removed from the filesystem, and we get some record related to it (such as ATIME, CLOSE, ...), the pipeline tries to delete the record, which lead to the following error:

  ... [23133/4]: ListMgr | Missing mandatory attribute name to ListMgr_Remove
  ... [23133/4]: EntryProc | Error 12 performing database operation.

There's no need to complicate the pipeline, since at some point an UNLINK event will happen, so just ignore that record.
Enlarge some strings.

This partially fixes a bug where there was too many stripes to be displayed by rbh-report.

The bug is still present though, and variable length strings should eventually be used.
Change RBH_PATH_MAX from 1024 to 4096
Handle changelog case where RENAME/EXT are not contiguous.
Decrement the nlink attribute when a name is removed (but the file still exists).

Added test to check nlink values.
Fixed typos.
Ignore an UNLINK record if the file is not in the database.

If it's not ignored, then RH will insert that file into the database (bug).