Make net.TCPSocket implement Stream.Duplex

...at least enough to run this test:
https://forums.tessel.io/t/socket-pipe-not-working-as-expected/204

Fixes #144
making requires work with underscores and dashes
adding tests
Merge pull request #170 from tessel/jh-path-fix

making requires work with underscores and dashes
Merge pull request #145 from tessel/km-net-stream

Make net.TCPSocket implement Stream.Duplex
Restores "make libtm-test" as a testing target.
Adds Miniz as a dependency.
Adds passing GZIP test, miniz compilation target.
Moves tm_deflate to its own file.
Adds "inflate" functions.
Combines suites.
Adds CRC32 and length checks to gzip.
Refactors "end" functions in tm_deflate/tm_inflate.
Adds initial bindings for deflate, zlib module, and test.
Adds createGunzip stream.
Refactors tm_inflate and tm_deflate to accept type argument.
Adds support for deflate, deflateRaw, and inflate versions.
Makes bit operations signed. Fixes #173
Removes compile warnings from firmware.