1. Use obsharedptr instead of shared_ptr. obsharedptr is #defined to the appropriate value
2. Add support for shared_ptrs to Python bindings. The following code now works:

r = OBReaction()
m = OBMol()
r.AddReactant(m)