Clean up input handling

Overall these changes contain a few big changes. I removed the old input handling and replaced it with a buffer approach that seems superior.

I also began copying attoparsec's benchmarking appraoch and I have been moving towards a fully working HTTP parser to compare aganist both C and Haskell implementations.

I'm continuing to have issues with closures and introduced a hack that I'm not compeletely sure works but hasn't crashed a program yet even with a bunch of fiddling around.