Instead of pushing the op to the pipeline, let the changelog reader accumulate them for a while. Once enough are there, browse the list and try to push to the pipeline those that are old enough, or if there is too many in the queue.

That way if might be possible to ignore some of the record 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 will it would have done for the CLOSE. This optimization is only possible if neither have been processed by the pipeline.

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.
(WIP) 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 file in an empty directory and move one onto the other:
  touch foo1 foo2
  mv foo1 foo2

Then look at the changelogs:
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.