Use IsPromise and IsError throughout the file when testing those classes.
Put underscores in front of ivars so it's more obvious when they're being accessed.
Read from the ivar a bit less often in helper methods.
Changes to make the implementation of PMKPromise thread-safe by using a per-promise concurrent dispatch queue and using a barrier when making changes to the promise. Also adds catchOn and finallyOn which take a queue to run the block on (these were not added to Promise.h, but could be).
Made ClassSwizzling.m compile without any requirements from a PCH file.