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
enforcing constraint expressions from macros can only be used inside the scope in which they were created.
use LuaJIT FFI's bool type to represent Terra booleans so they get translated into Lua correctly. fixes #27
fixing language extension number parsing bug.
Merge remote-tracking branch 'upstream/master'