Socket support

Connect directly to socket instead of through helper app
Outlines made to have constant width
Additional tidyup
BSD licence headers for files