Add tag location.switched

For use with the switch command!
Fix determine in random command, fixes #684

The reqId is needed for determination... also, report the command
properly.
Handle bad dLoc tag input better

Massive stacktraces If you did something like <l@1,2,3,world.add>
Now handled appropriately.
Add some element util tags and escapes

- &dot escape to prevent tag parsing issues.
- element.index_of, element.last_index_of, element.char_at added as
element utilities.
Handle startup errors more cleanly

To prevent total system bugout if something fails to load at startup.
Unfortunately means startup errors are less likely to be noticed, but
it's worth it.
Add Server List Ping smart event

Fairly simple event, but with the potential to fire fairly often.
Added at user request.
Fix some minor tag errors, fixes #686

- element 'x' .after 'y' should return empty
- <el@whatever.after> with no context should be considered invalid, same
with before
- Escape code should not throw NPE's on null input
- books without author/title/pages (invalid books) shouldn't cause Book
property exceptions, and simply have their data be not saved.
Add player targets: list option to PlayEffect

- Show the effect only to specific players rather than everyone nearby
- Also, correct some minor side-code typos.
Allow flagging values with colons in them

- flag global test:potato:power
Will now set flag 'test' to 'potato:power'
Still interprets '+' and similar correctly, compensating for the common
typo of doubling the math symbol.
Merge pull request #685 from mcmonkey4eva/master

Pull request for simple tags and fixes