Fix get_tydesc() return type

This fixes part of #3730, but not all.
Also changes the TyDesc struct to be equivalent with the generated
code, with the hope that the above issue may one day be closed for good,
i.e. that the TyDesc type can completely be specified in the Rust
sources and not be generated.
Remove intrinsic module

To achieve this, the following changes were made:
* Move TyDesc, TyVisitor and Opaque to std::unstable::intrinsics
* Convert TyDesc, TyVisitor and Opaque to lang items instead of specially
  handling the intrinsics module
* Removed TypeDesc, FreeGlue and get_type_desc() from sys

Fixes #3475.
Fix and reenable the reflect-visit-type test
Remove unused shape fields from typedescs
Small cleanups
Remove rust_call_tydesc_glue

Towards #4812. Also includes some minor cleanups.
syntax: Remove unused tokens

TyDesc, TyVisitor and intrinsic are not used anymore.
Remove unused TyDesc parameter from the glue functions

To remove the environment pointer, support for function pointers without
an environment argument is needed (i.e. a fixed version of #6661).
Fix reflect-visit-type for iterator changes
Add 'static mut' items to the language
Support foreign 'static mut' variables as well
Fix 'static mut' tests
libc: support functions from sys/mman.h

Because its part of POSIX. Values are taken from FreeBSD, linux
and OSX header files.
libc: add POSIX-compatible sysconf consts

Because its part of POSIX. Values are taken from FreeBSD, linux
and OSX header files.
Fix test failure on windows

This patch ensures that the multiple extern definitions of `free` in the
run-pass tests have the same declaration, working around #7352.
libc: (u)int => c_(u)int for consts
auto merge of #7257 : indutny/rust/feature/libc-mman, r=cmr

Add functions and constants required to be able to use `mmap` and friends.
Add support for #[no_drop_flag] attribute
Set #[no_drop_flag] on Rc<T> and AtomicOption. Add Test
Zero the struct in the take glue, not the drop glue