Favor `initialize` over `load`

`load` method calls are blocking and occur when the application is launched regardless of if the class is every used. `initialize` methods are only called the first time the class is actually used. `initialize` is also more future-proof because you can safely call any method on any class, while you can't reference classes other than the one you're currently implementing inside of `load` due to the runtime not being fully initialized.

Learned this from Matt Galloway's [Effective Objective-C 2.0](http://www.effectiveobjectivec.com) book.