moved adding and removing kvo observer into the instantiation and deallocation of AVPlayer and AVPlayerItem objects ensure tracking of observation status. Added @try @catch statement to deal with remaining cases which were causing a crash