Nonblocking

I've made some modifications to linenoise to allow it to be used with an asynchronous event loop (like poll or select), by refactoring input handling into a state machine to avoid blocking read() calls. I've written a complete example demonstrating the possibilities and usage of the new API.

A downside is the increased size of linenoise.c (now over 1100 lines), and additional API functions to handle the interactions.

If you find this useful or have any feedback, I'd love to hear it! Many thanks for all your work on this very useful library.

Peter