Database Logging

Magentaprint has been extended to include logging functionality with an
additional optional parameter which is overridden to always log
information when the debugging mode is running.  ex. magentaprint(string
Text, bool DebuggingOnly=True, bool LogToDatabase=False)

This update should update the database schema without any conflicts.
Timer Reactions

I've added two new that work as a timed bot reactions and whose regex
resets the time to different set values.
Item reference uses get_last_word

Get last word was added to misc_functions along with the Database
Logging update.  This tends to be more accurate when referring to items
however it should still be updated to create a unique reference since we
still run into issues like 'steel bottle' / 'whiskey bottle' similar to
the 'steel bottle' / 'steel mask' issue from using the first word
Combat Thread changes

- Combat thread now includes a more robust Stop check in that it will no
longer try to stop a thread that is already stopped
- Cast and Kill Threads uses the get_last_word function in
misc_functions to specify their target.
- The issue with gnoll mages being targetted instead of gnoll sentries
should be fixed by this change
- Similar to the Inventory thread this solution should be extended later
to stop confusion between ill gnolls / large gnolls (perhaps a misc
function "get_unique_reference_strings(array) that parses through the
ensuring there are no data collisions)
Cartography updates

- Mobs that are seen to block exits are now updated as exit blockers in
the database
- Mobs that are seen to block looting are now updated as loot blockers
in the database
- A syntax error with the clause to set unusable exits has been fixed -
this fix allows the bot to do a "look" when the regex "They are not
here\." is matched
Merge branch 'Py-3.4-Dev' of https://github.com/lbaribeau/los-helper into Py-3.4-Dev