Switched to implement.js for interface assertions

So, we can remove our own `implements` assertion.
Add a shorthand for sending write messages
Add some missing comments

Also removed an unused variable.
Update dependencies