Allow weak_from_raw to be called alone

Currently weak_from_raw fails unless shared_from_raw has been called previously.  This doesn't seem like reasonable behaviour, especially when only a weak_ptr is desired and the overhead of creating a shared_ptr and degrading it back to a weak_ptr again seems silly.