Fix 695300: don't throw exception on invalid reference number.

Return the null object rather than throwing an exception when parsing
indirect object references with negative object numbers.

Do range check for object numbers (1 .. length) when object numbers
are used instead.

Object number 0 is not a valid object number. It must always be 'free'.
Bug 695300: Sanitize draw-device stack handling in error cases.

When throwing an error during fz_alpha_from_gray, the stack depth
can get confused. Fix this by moving some more code into the
appropriate fz_try().

In the course of fixing this bug, I added some new optional debug
code to display the stack level as it runs. This is committed here
disabled; just change the appropriate #define in draw-device.c to
enable it.

Also, add some code to run_xobject, to avoid throwing in an fz_always()
clause.