moved to proper subfolder for go workspace setup
idiomatic errors, fix list subscribers

Instead of returning an int signifying error straight from C, this commit
wraps the return in a function call that will create an error based on the
input string (the function assertGTZero). This also removes errors from
a few functions that actually don't return errors at all in jlog.h.

The LastSubscribers* was meant to *fill in* the char **, not read from.
Rather than creating a char** based off of input slices, I create
a return slice based on the filled char**. Dispose isn't needed
because all it does is free the subscriber char**.
add support for reading and writing message byte slices

This uses reflect.SliceHeader to create []byte or decompose it to void *.
The byte contents do not need to be freed because they are not malloced
in the C file - it uses mmap. This also means the []byte should probably
not have the contents modified.

Includes part of an upcoming ID commit because patch couldn't remove it.
make IDs copy from Go to C and back again

using Id as type Id *C.jlog_id means that the underlying pointer isn't
allocated, which is annoying. Changing it to C.jlog_id means that modifications
to the ID in the C source aren't seen by Go without some pointer copying.

I choose the pointer copying
doc, style and bugfix

Update doc to remove that read/write_message are not implemented.

Style fix for ListSubscribers, the logic is now simpler.

Err should not free the rChars string because it is part of the jlog
binary, not malloced.
add jlog_test

This is a copy of everything from the jlogTest.java file. That file
probably misses some edge cases, but it did force bugfixes for me.
Other than that, whatever the java file misses I miss. But the java test
covers everything important.
remove possible memory leak

If list_subscribers returns when unable to open the dir, the
js.subs calloc is never freed and is overwritten later. This
moves the opendir to an earlier point.