OS: Fix connect(), and implement read(), write() & send() on compat socket.

These are needed for Open.socket to work correctly...
Merge pull request #80 from kennytm/os-compat-socket

Fix OS.connect, and implement read(), write() & send() on CompatTCPSocketClass
Revert f508bcf with workaround using explicit instantiation.

(Only tested on OS X 10.8.)

Since the problem is undefined symbol in coremodules.o, we could just
explicitly instantiate LString<unsigned char> there. `vmtest` works fine
after this.

Re-enabled string tests and ByteString.stringSearch.
Add some properties related to GC and memory.
Add option --max-memory=X to specify the heap size.

X is a positive number expressed in MegaBytes.
Merge pull request #84 from kennytm/bytestring-search

Re-enable string tests and ByteString.stringSearch on OS X.
Fix issue #85: Serialized code area size is doubled.

Cause: `buildTupleDynamic()` expects the number of elements, but
CodeArea::_size is the byte-size of the byte codes, which is 2x the array
length if passed as is.
Merge pull request #87 from kennytm/issue-85-2x-codearea-size

Fix issue #85: Serialized code area size is doubled.
Merge pull request #86 from sjrd/topic/option-for-max-memory

Add option --max-memory