Use a protocol for the returned object to add `stopObserving`

Also, by passing the observer object through the block, you can call to stopObserving from within it (see the updated string observing example in the app delegate).

Might do away with `dgkvo_removeObserverWithIdentifier:` (publicly) altogether. ;)

Still want me to lead that mountain?