Introduce SIP message validation for SIP Delegates (1/2)

Part 1 of 2: This change refactors MessageTransportStateTracker into
MessageTransportWrapper and TransportSipSessionTracker.
MessageTransportWrapper manages wrapping the App <-> telephony
and Telephony <-> ImsService AIDLs and TransportSipSessionTracker
manages the state of the SIP message transport based off of
signalling from the ImsService.

In this patch TransportSipSessionTracker ony performs basic message
validation based on whether the ImsService is attached, the
app has sent an outgoing SIP message based on the latest IMS
configuration version, and the SipDelegate has sent Registration
information.

This also introduces the concept of the SipMessageValidator
pattern, which will be extended to chain multiple validators
together for incoming and outgoing messages.

The next patch will introduce finer-grained SIP message
validation based on the SIP Sessions that are active.

Test: atest TeleServiceTests CtsTelephonyTestCases:SipDelegateManagerTest
Bug: 173828358
Change-Id: Ibe3843a0a18a73e3cb393b6565f0b0f14dedea4e
15 files changed