switch from streambuf to lower level api

- enables async reading
ping timeout checking

- not final
I hate msvc
fix incorrectly assigning parenthesis as unary operator
move infix_funcs into infix_parse
remove unused code
remove unused check
Merge remote-tracking branch 'ircbot/master'