ARM: Fix build, MMU Flags
Implement get, map with define_flags
Heap. Allocation with type arguments; overflow

Created kernel::heap. Allocation functions take one type parameter.
Used `mul_with_overflow` to safely allocate arrays (compare calloc.)
Improve build system

ARM target works except dependency info.

Moved .gitignore from project root to build directories.
Makefile reads patterns specified in gitignore to find
all output files and remove them with the help of `find` and
`xargs`.
Do not overwrite dep info. Using `sed` to remove some dependency info.
See http://stackoverflow.com/a/9054420
and https://github.com/mozilla/rust/issues/5870.
Specified that makefiles should use bash.
Update to latest rust-core and Rust master.
Memory management. `Phys<T>`

A pointer to type T in the physical memory is distinguished by wrapping it
in the `Phys<T>` structure. It makes code safer with increased clarity.
Used more type parameters.
Update macros

Add `impl_ops` and `define_reg`. Fix `define_flags`. Allow dead code.
arm: Enable MMU
kernel: Rename memory => mm. Move bitv.

Made `Bitv` more flexible.
Avoid warnings (mostly imports and names)