If an L2 agent extension does not implement the handle_port or delete_port
methods, we should check for that using hasattr() beforehand rather than
catching any AttributeErrors. This is based on a conversation related to
identical code in the L3 agent extensions:
https://review.openstack.org/#/c/339246/15/neutron/agent/l3/l3_agent_extensions_manager.py@44
Change-Id: Ic0c5133a9f49c39f1f446328beb3e0ca7eb85095