Objc first object

supercedes #565 with nil object checks and error logging where appropriate.

Note that I looked at the QuickTimeImplAvf.mm changes and AFAICT they play along with obj-c's 'nil rules', so if any of those fail well the code will keep ticking (or throw an `AvfFileInvalidExc`).