Improve build system

ARM target works.

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 and access domains

Described access domains.
kernel: Rename memory => mm. Move bitv.

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