write: accept an iolist
Add typespecs for NIF functions
open/1: disallow bad fd

Fail immediately if an invalid file descriptor is passed into open/1,
rather than deferring the error to the next read/write.
Bump the version

Increment the version for typespec changes. Further planned
improvements:

* complete typespecs
* add tests, at least for the functions not dealing with i/o
* fix the return value of cfsetospeed/cfsetispeed

  Functions return:

    binary() | {error,enomem}

  Since these functions may fail, they should either throw an exception
  on allocation failure or, for pattern matching, be changed to return:

    {ok,binary()} | {error,enomem}

* per suggestion, make srly into a well behaved application

  srly should be able to deal with the addition and removal of USB
  serial ports.

* optionally use inert for flow control of data from the serial port