Grammar: add code/tests for parsing Replaces header

Broken code to start att'd xfer Grammar

Working Replaces tests

Grammar.pegjs: clean up Replaces-related whitespace/delimiters

Grammar.pegjs: replaces_param: remove unnecessary parentheses

SpecGrammar.js: test parsed Replaces header values

SpecGrammar.js: simplify Replaces early_only tests
Pass along the Replaces header when referred
Added support for attended-xfer in UA for receiving an invite with replaces
Basically working att'd xfers

UAS INVITE w/Replaces: accept must succeed, to shut down replaced dialog

See RFC 3891 Section 3:

   If the UA cannot accept the new INVITE (for example: it cannot
   establish required QoS or keying, or it has incompatible media), the
   UA MUST return an appropriate error response and MUST leave the
   matched dialog unchanged.

http://tools.ietf.org/html/rfc3891#section-3
Session#refer: don't check scheme of attended transfer
followRefer: don't embed headers into Request-URI of INVITE
Session#refer dedupe blind vs. attended logic

Also, hang up after sending REFER with Replaces
UA#receiveRequest INVITE w/Replaces: match dialog according to RFC 3891

From Section 3 - User Agent Server Behavior:

The User Agent Server (UAS) matches the to-tag and from-tag parameters as if
they were tags present in an incoming request.  In other words, the to-tag
parameter is compared to the local tag, and the from-tag parameter is compared
to the remote tag.

http://tools.ietf.org/html/rfc3891#section-3
SIPMessage: add 'replaces' to Supported header