Rename memcpy, memmove, memset to prevent any confusion with the C equivalents.

Closes #4203.
Adds priv qualifiers where they have been commented out before implementation.

Updates #4386.
Make std::sync::semaphore() public
allow logical negation operator (!) to be overloaded
test: add test for overloading logical negation operator
Long lines
libsyntax: Fix name generation in condition! macro
support clang 3.2
Merge pull request #4453 from crabtw/clang3.2

support clang 3.2
Merge pull request #4452 from apasel422/cond-macro-fix

libsyntax: Fix name generation in condition! macro
Merge pull request #4445 from apasel422/notop

Allow logical negation operator (!) to be overloaded
Merge pull request #4443 from wting/4386_add_privs

Adds priv qualifiers where they have been commented out before implementation.
Add William Ting to AUTHORS
Factor out base::get_discrim_val from const translation
Allow consts' LLVM types to depend on their initializers.

Loosening the connection between the LLVM type and the Rust type
is necessary to use non-nullary enum constructors as const initializers,
because the const needs to be initialized with data of the actual type of
the variant in question, which is (generally) not the same as the u8
array in the `type_of` type.

Thus, referring to a const now requires casting the LLVM global to the
expected pointer type instead of using it as-is.
Allow consts to be non-nullary enum constructors
Omit needless zeroes for C-like variants of non-C-like enums
Add more tests for enum constants.

The tests have consts defined both before and after their uses in order
to prevent bugs that depend on the order in which they are translated.
Regression tests for passing enum-typed consts by reference.

If the PointerCast in trans_def_lvalue is removed, these cases cause
LLVM assertion failures.
libstd: "target_os = win32", not "target_os = windows". rs=bustage