Use os.Process.Wait, not syscall.Wait4.
Improve the package API.

Events is now a method returning the event channel. This way it can
implement an interface. Also, the, now unexported field of Tracee can
be a send/receive channel, simplifying some of the code.

Errors is now just Error, and it's a method not a channel. It is to be
called once after all events have been received to see if there was an
error while tracing.
Fix a race condition.

There was a race condition between methods sending on the Tracee.cmds
channel and the closing of the channel. Now, we use an rwlock to
synchronize the sends (which are reads, curiously enough) with the
close (which is a write). Methods that send on the command channel now
do so through the Tracee.do method, which encapsulates the use of the
rwlock and allows for graceful handling of the case where the tracee
exits (and the command channel is closed) before a command is
executed.
Send more-meaningful events.

This needs work. For now we just send the tracee's wait status, but we
can probably do something slightly more portable.
Add gok.sh and fix the package comment.