Weak observer references

Fixes retain cycle issue using a custom container class.

If/when this project goes iOS6+ the associated object code can be removed.