Change pointers to use strong storage

Different solution to #447.  This changes the storage of the pointers from autoreleasing to strong, so when they go through the @autorelease pool in runBlock: they are held on to by the caller.