Drop RpcCallback usage from DhcpRpcCallback

Drop the usage of the RpcCallback compatibility class from
DhcpRpcCallback.

Part of blueprint drop-rpc-compat.

Change-Id: I7c4654455c15c4a545c8b19bfcbf617e6d6593d6
Add some basic rpc api docs

The devref docs had a placeholder file for rpc API docs.  Now that
both a client side and server side interface have been converted from
the rpc compat layer to oslo.messaging APIs, add some docs that give
an overview of what the client and server sides look like.

Also include a section that describes the code layout of where you can
find client and server api implementations in the neutron code base.
It starts by discussing the DHCP agent related APIs.

Part of blueprint drop-rpc-compat.

Change-Id: Ib391958252077365a81bcb881ab27a078f71fdec
Drop several uses of RpcCallback

This patch drops several uses of the RpcCallback compatibility class.
All of these were trivial and straight forward conversions so I
batched them up.

There are still several other uses of RpcCallback, but the conversions
are were not necessarily trivial, and may be broken in one way or
another, so I wanted to address them separately.  In particular, the
use of mixin classes means that there could be cases where the version
declaration is being stepped on, so they need to be investigated more
closely.

Part of blueprint drop-rpc-compat.

Change-Id: I0977aee863d4fcc6a14a025215c6e41fe38a87f0
Drop test code copied from nova

Drop a couple of lines of test code that originated in nova and got
copied into Neutron.  These lines are meaningless in Neutron and can
be removed.

Change-Id: Ic7c174ba0671ddd4a9403b74fa42e7944fe74145
Fix a copy/pasted test mistake

Fix a minor test mistake that was copied around a few times.  In mock
setup, the intention was to only return a value of the rpc method used
was a 'call', not 'cast'.  Unfortunately, the variable checked was
method instead of rpc_method, so this expected return was always set
to None.

This also points out that what's being tested here isn't what *really*
was intended.  It ends up testing that the code returns what we mocked
it to return, which isn't all that useful.  However, at least with
this fix it's a bit more clear what it's trying to do.

Change-Id: I18e85aa66f83331318177d70cbae2468ff8bb57d
Fix a race condition adding a security group rule

setup_port_filters() needs to grab self.devices_to_refilter
before it calls prepare_devices_filter(), else it could skip
processing a device if an RPC arrives while it's processing
new devices.  That device will now be handled the next time
it's called.

Bug introduced in commit 3046c4ae22b1

Change-Id: Ib2f460cc095bbea8f9c767dcb9b4d4b66f1a7811
Closes-Bug: 1393925
Merge "Fix a race condition adding a security group rule"
Merge "Drop RpcCallback usage from DhcpRpcCallback"
Merge "Add some basic rpc api docs"
Merge "Drop several uses of RpcCallback"
Merge "Drop test code copied from nova"
Merge "Fix a copy/pasted test mistake"