Prevent parseCSeq uppercasing method names.

As per RFC 3261 8.2.6.2, the CSeq header of a response MUSt equal the
CSeq field of the request.
So prevent parseCSeq from turning e.g. rEgister into REGISTER when
we process the message.
Add CSeq parsing tests.
Enforce maximum CSeq value of 2**31 - 1

Return an error if we try to parse a CSeq larger than that.
Return error if params found in CSeq header.

Add code to check for this, and unit tests to make sure we do.
Add more testcases for malformed CSeq headers.
Add Call-ID parsing tests.
Add tests for space between header name and colon
Add tests for Max-Forwards headers
Add Content-Length header tests.
Add machinery for testing Via parsing.
Change treatment of multiple Via: addresses

Previously, "Via: [A], [B], [C]" was interpreted as
  Via: [A]
  Via: [B]
  Via: [C]

and similarly the API did not expose a mechanism for adding extra
via-params to an existing header, only new Via headers.

Since it transpires that UACs SHOULD discard messages with multiple
Via headers (RFC 3261 8.1.3.3), we shouldn't treate multiple sections
and multiple headers as interchangeable in this case.

Via headers are now a list of pointers to ViaSections.