Fix crashing when closing an archive with open child archives.

Maybe.

Several problems here:

- The existing tab_closing check stored the index of the tab being
  closed, but compared that to the index of the archive to be closed, so
  it wouldn't always work correctly.

- Closing an archive with open children would save the top-level archive
  first, then the children, which probably doesn't work.

- Closing a child archive didn't actually remove it from its parent's
  list of open children.

- Sometimes, for reasons beyond my mere mortal comprehension, wx would
  try to render an archive panel /in response to/ calling Show(false) on
  it.  It only seemed to crash for an archive that USED TO have a child
  open, but I also saw it happen for still-open archives when switching
  tabs.  I don't know if this is a bug in wxAUI or a bug in SLADE or a
  miscommunication or what.

The solution to all this (I think?) is to split tab closing into two
parts: first ask about saving all the open children, then actually close
them only after the original tab has been closed.  I can't find any way
to crash it with this setup.  Phew.
Merge pull request #128 from eevee/fix-child-archive-crashes

Fix crashing when closing an archive with open child archives.
Store crash logs in the user data directory, not the app directory.

The app directory is more likely to be unwritable (and wildly in
appropriate, e.g. on Linux where it's /usr/bin).
Simplify the archive tab closing defenses a bit.

Deleting a tab that's already being deleted turns out to be fine.

Storing the entire dependency list of archives is unnecessary, because
closing the topmost one will automatically close all the children
anyway.
Check a propgrid prop for unspecified before trying to cast.
Fix some format specifiers.

Not a big deal and generally just in log messages anyway, but wxWidgets
pops up big angry dialogs complaining that assertions failed in debug
builds, which is super annoying.  :)

Mostly fell into two categories:

- Vector sizes and other uses of size_t (notably, map object IDs) should
  be unsigned long, %lu.  This is still slightly questionable, but far
  less so than %d, and empirically it appears to work fine on both
  32-bit and 64-bit builds.  Technically size_t could be even bigger, but
  offhand I can't name a system where either size_t or long long is
  wider than long.

- Various unsigned locals should be %u.
Fix creation of new maps in a directory.
Fix assertion error when trying to show an archive's path sizer.

The path sizer is actually a grandchild of the panel's sizer, so we need
to use GetItem() with the recursive argument.
Merge pull request #129 from eevee/misc-minor-fixes-2

Misc minor fixes, round two
- Added a bunch more stuff to the map editor context menu and toolbar (toolbar icons are temporary)
- Added ability for SAction to use a keybind for the shortcut
Merge branch 'master' of https://github.com/sirjuddington/SLADE.git
Merge branch 'master' of https://github.com/sirjuddington/SLADE into Music
I thought I had removed those things.