Add the capability to create tagged pointer and classes in bitmanip

Create utilities to make safe tagged pointer and class references in std.bitmanip.
Same here.

Also, can you document the parameters better? Right now, the only documentation is the example, and it's not entirely clear to me what the parameter `2` does.