libc: fix MAP_ANON value on linux
libc: add _SC_* consts for non-mips linux too

They was previously missing
libc: VirtualAlloc and FileMapping bindings
libc: add errno values
os: introduce cross-platform MemoryMap bindings

Basically, one may just do:

    MemoryMap::new(16, ~[
      MapExecutable,
      MapReadable,
      MapWritable
    ])

And executable+readable+writable chunk of at least 16 bytes size will be
allocated and freed with the result of `MemoryMap::new`.
A few slight tweaks to the Vim syntax file.

- Add fold support (NOT turned on by default)
- Highlight `::` by default
- Support the common `NOTE` as an important note
- Highlight `assert!` and `fail!` differently
- Don't highlight `deriving(...)` except in `#[...]`
Add a Vim filetype plugin with useful tweaks.

This improves things like doc comment handling when you press Enter and
making using `gf` or `<C-W>f` work on a `use x;` statement in the
current directory.
Do indentation properly in Vim.

The cases that this improves are clearly documented inside the
committed file, so this commit message is comparatively brief.
auto merge of #7665 : chris-morgan/rust/better-vim-support, r=cmr

General tweaks for Vim support, especially proper indenting.
auto merge of #7528 : indutny/rust/feature/memory-api, r=cmr

@cmr this is still WIP and I haven't tested it on windows, but anyway.