Fix bad assumption with uses of maxledgerno()

Namely: levels[maxledgerno()] is a valid level, contrary to C idiom.
Fixes panic with objects with timers (e.g. rotting corpses, fueled light
sources) on the Advent Calendar level, and shows the Advent Calendar on
the dungeon overview.

Bug spotted by Coupon.
Search player's level first in find_oid()

find_oid() is used almost exclusively when loading a game, yet the
global level pointer is explicitly null at this point so the shortcut to
search the current level before scanning every single level did nothing.

This fixes that shortcut to save maybe a few milliseconds from game
loads.
CS1935: Prevent portal from generating inside rooms in Advent Calendar
Bump patchlevel to 0.5.3

This release fixes a panic when loading the game with timed objects
(e.g. rotting corpses, lit fueled light sources) in the Advent Calendar,
some obscure shop-and-container bugs, #tip command corner cases, and
introduces the new 'darkmsg' option to control whether past messages are
darkened.