Early buffer implementation for the Java codegen
modify RTS so that it can be built single-threaded if pthreads are not available.
fixups for HAS_PTHREAD changes
hack in idris_gc to force 16-bit/2-byte alignment for
allocations. Some embedded platforms, like the arduino/avr, support
byte-aligned pointers. However, that makes implementing tagged
pointers very tricky. So, instead we just force 16-bit alignment.
remove #include <unistd.h>. Not all platforms provide that header, and it does not seem to be required anyway.
force tag_arity and ty to be uint32_t instead of system dependent int sizes.
Changed some ints to size_t. Seems valid -- not certain.
should have been in the last commit.
Change + to | because | better reflects our intentions.
alloc_heap also requires the pointer alignment hack.
Minor fixes for the Java backend
Merge branch 'master' into JavaBackendFixes
* Make regression test029 work by adding a wrapper loading environment variables to properties
* Include sugar004
added "prim__registerPtr" noop for Java
Merge branch 'JavaBuffers' into JavaBackendFixes

Conflicts:
	src/IRTS/CodegenJava.hs
Add superclass info to ClassDoc and output it in pprintDocs (:doc command)
Fix if - operator precedence mistake, fixes #911
Correct filtering for subclasses in pprintDocs (fixes #1212)
Correct filtering for subclasses in pprintDocs for multiparameter subclasses
Fix List.split

This commit makes List.split behave a bit more sane and elegantly.
Currently split has the following behaviour:

  0: split (== ':") "foo"   -> ["foo"]
  1: split (== ':") ":foo"  -> ["", "foo"]
  2: split (== ':") "foo:"  -> ["foo"]     (!!)

  3: split (== ':') ":foo:foo"   -> ["", "foo", "foo"]
  4: split (== ':') ":foo"       -> ["", "foo"]
  5: split (== ':') ""           -> []     (!!)

Cases 3 and 5 are the problematic ones. I would think they would result
in ["foo", ""] and [""] respectively. This patch gives split this
behaviour, it also gives split the nice property that the length of
(split ':' str) is (1 + the number of colons in str)

I've looked at the uses of split in the prelude and none of them seem to
be effected by this change.