Refactor safe keypath coding

NSObject+WSObservation.h is awesome, but I always use it together with [libextobjc](https://github.com/jspahrsummers/libextobjc) metamacros to make sure that the KVO path is correct. 

Here I've combined the two for convenience.