Implement updating OF client connection (IP, port, protocol, role)

This commits introduces functionality that is expected from
ofp_client:update_connection_config/2 API function. It also introduces
test cases (however changing protocol is not covered).

Terminating connection and reconnection is improved in this commit too.

(Motivated by https://github.com/FlowForwarding/LINC-Switch#319).
Add controller_role type

Note, that it's different from ofp_controller_role that is used
in role requests. Added type is for specifying internal controller's
role.

(Motivated by https://github.com/FlowForwarding/LINC-Switch#319).