! A partial revert of the topic privacy fix. The fix was all about the fact that non-admins with permission to approve posts wouldn't be able to see see unapproved posts. Which is pretty bad, so I'll need to rewrite a query in loadBoard because it's caught in a logic loop with loadPermission. In the meantime, because my fix was breaking inside uncached boards, I'll just leave the code where it used to be -- it'll work fine for everyone else. (Class-System.php)
+ Added an {empty} type for empty strings in query replacements. (Class-System.php)

* Rewrote a bit of the database variable replacement code. (Class-DB.php)

 - Renamed the function to just wesql::replace_value,
 - Removed the 'identifier' type (never used, not even in SMF?!),
 - Removed 'text' (an alias of 'string' that was never used...
 - Removed all break instructions, because they were never executed anyway,
 - And hopefully made the error message for replacement errors more helpful.

@ And if I were to rename string to text across all files, I'd rather rename it to 'str', which I won't do anyway.
- Removed query_see_topic test from loadBoard, as it was actually overkill (this isn't the place to test whether the topic is actually viewable...), and was the thing that broke topic privacy for moderators. (Load.php)

* And thus, I can revert my revert, and push back query_see_topic creation to we::permissions. Phew... (Class-System.php)