Encapsulated all database logic in BMInterface in try/catch blocks

Fixes #963 (I believe).

Chaos, let me know if this is what you were expecting.

http://jenkins.buttonweavers.com:8080/job/buttonmen-blackshadowshade/422/
This doesn't seem quite right to me --- i think the existing functions which do this best, wrap the entire function in a try block, and just have the except at the bottom (and sometimes the except has logic for whether the thrown exception was a database error or not).  Because you're only wrapping the select, if the select for some reason returns malformed data which can't be coerced into `$playerInfoArray` (and there's a lot of data to coerce into `$playerInfoArray` in this function), the exception from the array population will be passed on to the player.