Added some major enhancements

I wanted to use BSON for a high performance rpc server in go. If you like my changes so far, I can do some more iterations, and we can even try to get this added to the main go rpc package.