Only write a maximum of MTU bytes at a time, and write asynchronously

Addresses issue #23 and issue #24

Discussion needed to address async writes on #24 since it makes the callback fire deceptively early. Please see comments in respective commits.