support using C++ BSON sources when mongodb isn't available

add build_bson.sh that will fetch, unpack, and patch the sources
extend Makefile system to support options for IPC and DB beyond mongodb
change some includes to use the bson header
ZeroMQ implementation of IPC

Also abstracting out IPC creation
A zmq.Poller implementation for eventlet

Change-Id: I7b7b5223e6d1432d364e5e1b24d0797c4b80a468
memory based tables for rfserver

Cleaned up conversions in rftable.py:
  The DB back-ends can store int and None values faithfully, so no
  need to convert to/from strings for all values.

  The %s conversion in format strings implictily calls str(), so
  no need to call explicitly

  Modifying values inside passed dictionaries is generally
  impolite, and led to very hard to diagnose problems (when those
  dictionaries were retained by other other code...).

Change-Id: I7364a10c409d0b5fe2b1bdc2d29e84f5da221170
Fix logic error in handling resolveGateway()

only reschedule handling a route if resolveGateway() returns 0
also, force initiateND() to fail on IPv6 (noisily) since that just fails for now

Change-Id: I604c9359125f2470294aeaaac59fe0ae4121071a
keep client from crashing when ifaceName has no digits
A version of rftest1 for ryu

Change-Id: If6ada9288cee31d2e17a7f9ef301b1a65046e7f2