Fixed some info prints and death related code

Shifted "last killed by" code to Death.pwn and "last hit by" code to
Damage.pwn. Provided interface functions for retrieving this data for
API.

Last killed by and Last hit by data should be more accurate now
resulting in correct weapon being printed to [KILL] logs.

The same effects to [DEATH] logs, it should display the correct reason
for death.

Added improved logging to Defences.pwn, construction, opening and
closing is now all logged.

Added an experimental detector for players who shift themselves through
defences. Works most of the time but can produce false positives for
players running around defences while lagging and sprinting.

Also removed a random empty hook in Tutorial.pwn
Improvements and fixes to detection fields

detfield:
- Added GetDetectionFields to return the total number of detection
fields.
- Added GetDetectionFieldLogEntries to return the total number of log
entries for a field.

Fixed a bug where exceptions would "leak" across fields when loading a
field with less exceptions than the previous because the previous ones
would still be in the list as it wasn't emptied on each iteration.

Added DialogPages.pwn which adds simple dialog page buttons.

Added paging for detfield list and detfield log entry list using the new
DialogPages library.

- Known issue: does not look good on smaller resolutions, dialog buttons
need to be moved.