Reverted to unsafe_unretained for array contents

Apparently, weak references (smart pointers) could not be stored in
NSArrays, and for a good reason: The logic for removing an array object
would be undefined (NSArray are thread-unsafe, and also mutating while
iterating could give hell).
So to prevent crashes - using unsafe_unretained. Just remember to remove
the delegate when leaving a view controller.