Implemented TFTP block number rollover

* According to RFC 1350, block number is an unsigned short int, not a
signed one (fixed that)

* According to RFC 2347/2348 block number can be rolled over after
it becomes (> 2^16-1) and can be 0, which makes file transfers unlimited
rather than without rollover when file size is limited to
(2^16-1*block_size)