Merged in smart_ptr changes from the sandbox/boost0x branch created for BoostCon '09. This adds move semantics to weak_ptr and intrusive_ptr.