Fixed .mm extensions, added KVO convenience method, self-cycle defeating utilities, str* functions.

[FIXED]     No .mm extensions, we need to be compilable for non-ObjC++.
[ADDED]     -observeKeyPath:withBlock: convenience KVO method.
[ADDED]     Weakify & Strongify utilities for making self cycles less painful to deal with.
[ADDED]     str* functions for more simplified access to Pearl*String* functions.