puts a val into port. nil values are not allowed. Will block if no buffer space is available. Returns true unless port is already closed.