Removed trailing spaces.
New changelog reader options: mds_has_lu543 and mds_has_lu1331.

A rename command (eg. "mv foo1 foo2") will behave differently whether
LU-543 and LU-1331 have been applied to Lustre (client and server).
Extend the support for all possibilities, and try to autodetect the
current configuration, which can also be set in the configuration file.

To determnine whether each option could 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 can be set to 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.

This patch also removes 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 leads 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 drop that record.
Handle changelog case where RENAME/EXT are not contiguous.
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).
Serialize an operation that reaches a stage with STAGE_FLAG_ID_CONSTRAINT without a FID.

Without LU-543/LU-1331, the changelog record for an "mv foo1 foo2" command will not
include the FID of foo2. We get it from the database. However since we don't know
its FID, we have to get it from the database, which prevents us from inserting it
into the constraint engine on time. So we must wait until all the records before
it have cleared the pipeline before we can process it. Once the FID is recovered, it
can then be inserted into the constraint table, and normal processing can resume.
Reverse a test. No external impact.
Small code cleanup (micro optimization).
Removed unused tmp_fs_mgr_pipeline.h.
Change Stage from defines to enums.
Integrate remove_entry_from_stage into the only caller.
The stage is always locked when calling move_stage_entries, so remove the lock parameter.
Remove the entry_lock mutex.

Every time the entry_lock is taken, the stage mutex was also taken.
So taking entry_lock is redundant and will never block.