add test: tracker client from magnet uri
handle case where magnet uri has only one 'tr' param
handle case where parsedTorrent.length is undefined

- Expose `torrentLength` so the user can set it when they know the
torrent length. (With a magnet uri, they won’t know the length at the
time the Client is instantiated)
- UDP Client: Send FFFFFFFFFFFFFFFF for ‘left’ param when we don’t know
the size. (This is what Transmission does)

Fixes #15.
0.7.0