Create the function mksobj_basic(), split out from mksobj(),
which now calls it for the initial setup.  All the junk that
depends on random chance (beatitude, enchantment, charges, and
so on) is still handled in mksobj(), as before, so the helper
function, mksobj_basic(), should be safe to call in cases
where the RNG should not be used.  Normal object generation
should continue to call mksobj() as it always has.
Merge branch 'savebreak' into ticket386
Make describe_object() call mksobj_basic() instead of mksobj().
Per coppro's suggestion, mkobj() now just chooses an object
class, then calls a helper function, mkobj_of_class(), to
create the actual object.  This change is not strictly
required to fix ticket 386, but it is of a similar nature
to what I did with mksobj().
Merge remote-tracking branch 'jonadab/ticket386' into savebreak

Fixes #386. (Horray for meaningfully named branches!)
Fixes and improvements on Jonadab's #386 fix
More indexing change errors!
Fix message window scrolling bug #396.
Merge remote-tracking branch 'remotes/ais523/savebreak' into savebreak