Always examine tdata, not rdata.

Previously we sometimes examined rdata when it was available, e.g.,
when constructing an AsChain. With this fix, we no longer do that
- we always look at our current copy, tdata.

This is required in order to handle chains of internal ASs: an
internal AS may modify the message, and this must affect future
iFC evaluations etc - so we must always examine the latest copy,
which is in tdata.
Refactor to use _req instead of tdata.

_req is a member of UASTransction which is an alias of tdata, i.e.,
the request we're considering forwarding on.

So it doesn't make sense to pass tdata around - just use _req instead.
Resulting code is terser and clearer.
Re-enable MMTEL UTs.

Enable one MMTEL UT that can be made to work. (with some workarounds
for a Privacy bug).

Leave one that relies on multiple Privacy invocations disabled,
because it doesn't work.

Add a new MMTEL UT covering CDIV. This currently fails.
Fix dodgy-looking exit-context call.
Pull message handling into separate method.

handle_non_cancel now encapsulates incoming, originating, terminating, and
outgoing handling in a single method.

The initial 100 Trying is not in this method, because it should only happen
once even in recursive MMTEL cases.
Fix MMTEL orig-cdiv handling.

The internal MMTEL AS (in terminating mode) now holds an ODI token (an AsChainLink, actually). This enables it to correctly trigger
orig-cdiv handling when it does a redirect.

Fix the orig-cdiv handling to get the served user from the AsChain we have in our hands, rather than scraping the message for it -
previously this relied on the P-Served-User still being present in the message when the AS returns it, which is not guaranteed,
and now (in the internal case) the P-Served-User header might never have been added!
Fix memory leak: free iFCs when done.
Extra UT to test double-redirection.
Clean up comments.
Merge branch 'reeval-ifcs' of github.com:Metaswitch/sprout into handle-mmtel-in-chain
Use AsChain on 302 redirects in MMTEL AS.

We should apply the AsChain on all redirects, including ones triggered by 302
responses. Otherwise a user could avoid an outgoing international bar by
redirecting to it.

Make the AsChainLink argument compulsory (& rather than *) and pass it always.
Merge branch 'dev' of github.com:Metaswitch/sprout into handle-mmtel-in-chain

Conflicts:
	sprout/aschain.cpp
	include/constants.h (not spotted automatically)
Merge pull request #49 from Metaswitch/handle-mmtel-in-chain

[Reviewer: Mike] Handle mmtel in chain