Make serialport npm optional.

This commit causes exceptions that are thrown during loading the
serialport npm (e.g. because the shared library cannot be loaded)
to be ignored.
Fix bugs in SerialDataSource.
Cleanup the package.json file.