[wlan] Use SetControlledPort MLME primitive

Have SME direct lower layer to open controlled port whenever it
determines that ESSSA is established, rather than having lower layer
always do so on first key set.

This commit changes SME and both softmac MLME and wlanif, and affects
both AP and client modes. However, since wlanif doesn't fully support AP
mode (e.g., it doesn't track data state for each client), only the code
paths relevant to client modes are modified.

WLAN-123 #done
WLAN-364 #done

Test: Test Broadcom and Atheros devices manually. Unit tests.
Change-Id: Id19ac7b218e4b781180305f6e10146076a5c9120
17 files changed