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.