foo
Clean up dummy files
Refactor parser to work off streamed input.

Also add logging mechanism.
Fix parser hang on messages with bodies

 - Add some basic tests for the non-streamed parser.
 - Fix bug where the parser hangs on messages with bodies.
Fix slice index error in parser for responses.

Attempting to parse anything that doesn't have two spaces in the first
line, or doesn't have at least three non-spaces following the second
space, caused a slice error in isRequest.
Now amended.

Also fix corresponding error for isResponse, which could be hit if the
first line had fewer than 3 characters, or a space within the first
three characters.
Fix parsing of LWS in parseCSeq

Permit parsing of CSeqs with spacing other than ' ' between elements.
Add tests.
Extra error text for parse errors in StartLines.

Include a prefix in the error text saying that the parse error was in
fact in the start line - this is useful information.
Add more parser test cases.
Merged in header format changes and interface expansion.
Change statusCode from uint8 to uint16

Apparent SIP status codes can be bigger than 255.
Who knew.
Fix handling of expected failures in parser FVs.

Expected errors and expected timeouts are now treated as successes.

(Expected timeouts are denoted by test cases containing neither
expected messages, expected chan errors, or expected returned errors.)
Cherry-pick header handling code from master.

Cherry-pick the code from master that moves headers to being stored as
a map, with a slice for order.
Add convenience functions for manipulating the headers.
Make the map and slice themselves private.
Fix up existing code to use the new functions for handling headers.
Put headers in a map so they can be accessed by name

Cherry-picks:
 - Put headers into a map so they can be accessed by name
   (575c850c6012a6e88b5b5f177c6d2b0469caaec0)

 - Added header ordering
   (a6bcd2949c5dd447b9a467125c2bc6731374ccf6)

Conflicts:
	parser/parser.go
Make header lookup case insensitive.

Store header names in lowercase in SipMessage.headers and
SipMessage.headerOrder.
Convert header names to lowercase before lookup in
SipMessage.HeadersWithName.
Fix various bugs in streamed parser + add tests.

- Streamed parser expects \r\n at end of body.
- ... So move away from previous pipeLines parser approach, and instead
  the new parserBuffer struct to block until the required data is in the
  parser.
- Add tests, and fix bugs.

More streamed parser tests are needed.
Merge branch 'stream_parser'

Conflicts:
	base/headers.go
	base/messages.go
	parser/parser.go
	parser/parser_test.go
Templates for transport stack, plus UDP code.

Add templates for transport code (sending and receiving SIP).
Add UDP transport manager implementation, for sending and receiving
using UDP as the transport.
Add connection table to transport.go.

Track open sockets, associate addresses with sockets, and expire sockets
that have been idle for too long.
Write a TCP transport implementation

Split away a 'transport' interface from the TransportManager to
allow specific transport code without having to reuse parser-management
code in each implementation.