Moving XCode 6 Beta 3 changes into the mainline

I'm now comfortable with the changes to accommodate the co-dependant protocols as I have been able to use this as part of my performance improvements.