Port list takes too much times to return

When a classic user list ports without any filters, the command takes
too much time to return.

Change-Id: I81498ddc044174e6d6f93bb21df3285f48df6df4
Merge "Port list takes too much times to return"
Implement more orderly termination of BgpServer

Do not allow the BgpServer to be destroyed if BgpSessionManager's
WorkQueue is non-empty.

Move call to TcpServer::Shutdown back to DeleteActor::Shutdown as
we no longer accept incoming sessions if the BgpServer is deleted.
The latter is more watertight fix than calling TcpServer::Shutdown
immediately.

Do not accept incoming sessions if the BgpServer is deleted. This
stops the WorkQueue from building up after delete of a BgpServer
is triggered. Also, send a notification and delete the session if
the BgpServer is deleted when we process the session.

Change-Id: I56f823559e700dd6bcbeb8ebe3935697e91b47d2
Fix and improve bgp_server_test

Change-Id: I92014d563335137a242ca78cdfb40a1dda5da9db