Added generic_weak complement to generic_shared, and wrapper implementation of weak_ptr for the sake of running shared_ptr/weak_ptr test suite.