(v)Video -> (v)ideo
utf-8 decode fixes

never send a final=True, as the engine does not perform decoding and has
no idea when the socket will send the final byte! also log decode errors
dbproxy does NOT lock session lock

it acquires a bbs-global fine grained lock
add timeout_ipc option
refresh fix; force term.normal
speedup lookup by using keys() instead of iterkeys()
bbs list refresh fix
refactor pipes to prevent blocking

previously we used a full duplex pipe, now we use two non-duplex pipes, and perform a lot of fine grained locking and timing to prevent the pipe from blocking. as an emergency measure, when the client process's input queue cannot be sent to within timeout_ipc, it is flushed.