Parse and interpret iFCs.

IfcHandler parses the iFCs, and evaluates the SPTs - in particular,
Method and SessionCase (the others are excluded by our spec at
present, to be implemented in future).

IfcHandler can access the registration store to see if a user is
registered.

SessionCase has operator== support.
Make UTs compile.
Make UTs pass.

Add extra diags, fix a bug (looking on wrong node for XML), and
fix an invalid test (missing priority on iFC).
Add UTs for IfcHandler and AsChain.

Covers AsChain fairly well (except for MMTEL), but doesn't yet
cover all the new code in IfcHandler.
Allow finer control of logging level during test runs.
Improve coverage on IfcHandler.

Nearly 100%...
Don't crash if NOISY unspecified.
100% coverage of IfcHandler code.
Make test pass even if logging level isn't 5+.
Plug memory leaks.
Extra iFC parsing for information needed in third-party registration
Move reg-state lookup from IfcHandler into proxy.

Doesn't make sense to couple IfcHandler to the reg-data store.
And in any case, the stateful proxy needs to reg-state when it
is invoking the AS (for the P-Served-User header).
Factor out deregistration code
Merge pull request #6 from Metaswitch/ifc-interpretation

Ifc interpretation
Make our random numbers unpredictable.

Mix in the time in seconds, time in milliseconds, and process ID.
That gives a reasonably large space for guesses.
Merge pull request #9 from Metaswitch/make-random-random

[Reviewer: Mike] Make our random numbers unpredictable.
Code review feedback
Allow relative installs
Merge pull request #12 from Metaswitch/relative-install

Allow relative builds

Reviewed by Felix.
Merge branch 'dev' into 3p_reg_asInvocation

Conflicts:
	include/ifchandler.h
	sprout/ifchandler.cpp
	sprout/stateful_proxy.cpp
	sprout/ut/ifchandler_test.cpp