Exiting the process is not very "iOS", particularly exiting within dealloc.

By default (when using BGPAppDelegate) we will only exit when the OS says
we're already terminating.
Making the iOS active view controller reference weak enables more intuitive API use.