Adding windows build infrastructure.
Fixing (read: kludging) the issue where terra.exe would not re-link when terra.lib changed.
Also re-arranged the custom build scripts for LuaJIT a little so it's possible to drop in replacement files.
Merge branch 'master' into windows

Conflicts:
	src/llex.cpp
	src/tcompiler.cpp
removing windows-specific files and fold into single implementation.
Fixing the build to work on Windows again.
All tests pass now.
Added a simple README.
removing spurious printf
Merge branch 'master' into windows
some missing tests.
simplifying main.cpp to make it easier to disable linenoise
indices to pointers/arrays now correctly sign/zero extend.
refactoring indexing for pointer arithmetic to use normal primative casting rules.
Adding support for __unm metamethods. closes #17
fixing typo in precedence table. closes #21.
Fixing bugs that prevented multiple copies of Terra from running on each thread. closes #18

1. global LLVM options/initialization is only done the first time terra_init is called.
2. if multiple calls to terra_init are made, we enable llvm's multi-threading mode.
only enable AVX if the host has AVX extensions.
fixing a bug where includec would fail if C code used the same name for
a type and a function. Include C now returns two arguments
C,T = terralib.includec(...)

C will contain all the functions, and any types whose names do not conflict with the functions
T will contain all types.

Most of the time you can ignore the second argument.

Eventually we need to improve the handling of typedefs vs. struct definitions from C since there
are a few lurking problems (such as when struct Foo and Foo are not the same type).

fixes #24
fixing issue with name conflicts between typedefs Foo and struct Foo.
includec now returns two _namespaces_. The first is the generic C namespace
where functions, variables, and typedefs live. The second is the 'tagged' namespace
where structures, unions, and enums live.

generic,tagged = terralib.includec()

like before, members of the tagged namespace that do not conflict with names in the
generic namespace will also be present in the generic type. So the only time
you need to use 'tagged' is when the name appears in both such as 'stat' on unix.
support for negative steps in for loop.
Ensure that C record types are filled in with the proper definition when
they are declared before they are defined.

Also fixes a problem where C record types would not show up even if they are not used by a function
in the same translation unit.

fixes #25 fixes #26
Merge branch 'master' of git://github.com/zdevito/terra

Conflicts:
	src/tcompiler.cpp
	tests/multiterra.t