Add pkg-config gc flags to llvm Makefile

This makes building work for systems which have gc installed in a
non-standard location.  The invocation was pulled from
https://github.com/schani/clojurec/pull/2, and then modified based on
https://github.com/idris-lang/Idris-dev/pull/428#issuecomment-26302460.
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)
Slightly better docs in pprinter
Show symbols as types, semantically

This makes them blue, like other types.
Fix precedence of application vs arrows in pprint

Changes
    Prelude.Applicative.<$> : Applicative f => (f (a -> b)) -> (f a) -> f b
into
    Prelude.Applicative.<$> : Applicative f => f (a -> b) -> f a -> f b