BlockDB.new_block_cv: wake upon block

BlockDB.__contains__: new method
pack_getdata == pack_inv [cython module-level alias doesn't work?]
WT/WF: debug funs, color indicates direction
BaseConnection:
  send_mutex: protect send_packet()

  send_packet: don't bother printing ping/pong
Connection:
  known: set of invs from the other side
  cmd_inv: use known, collapse conditional
  cmd_getdata: reply with blocks (later send txns)
  send_blocks: new
  send_invs: gossip to the other side
new_block_thread:
  waits on new_block_cv, sends invs to live connections.
go: spawn new_block_thread
cmd_status: include height & services in table