Rule preventing assigning an ivar outside of getters/setters/init.

My C++ isn't very good so any sort of code critique is most welcome.

I also wasn't sure if it really wanted to go in the "migration" folder, but it seemed as good a place as any.