Attended Transfer: Add Grammar rules/tests for Replaces header

(contains code written by @wakamoleguy)
Attended Transfer: Add UA configuration option 'replaces' for RFC 3891

Like the 'rel100' option, 'replaces' can take three values:

  * SIP.C.supported.UNSUPPORTED
  * SIP.C.supported.SUPPORTED (default)
  * SIP.C.supported.REQUIRED

The 'replaces' option mainly controls the behavior of the UA upon receiving an
INVITE with the Replaces header. If 'replaces' is UNSUPPORTED, the UA will emit
'invite' as usual. Otherwise, the UA will attempt to follow Section 3 of RFC
3891, automatically accepting the INVITE and terminating the replaced dialog.
Before terminating, the Session associated with the replaced dialog will emit
the 'replaced' event with the new Session, so that the application is aware of
the replacement.

As with 'rel100', the Supported and Require headers sent by the UA will reflect
the configured value.

https://tools.ietf.org/html/rfc3891

(contains code written by @wakamoleguy and @james-onsip)
Attended Transfer: clean up Session#refer, ensure Session is confirmed
Attended Transfer: Session#followRefer copies Replaces header to INVITE

(contains code written by @wakamoleguy and @james-onsip)