According to github/raspberrypi/linux/issues/369, you need to enable the rtlwifi/rtl8192cu kernel module that is included with the kernel distribution but not compiled. This requires minor modifications to some files as diff'ed below in 'STEP 2'.

The USB issue mentioned in that thread has been resolved as of 4.1.6+, so the rtlwifi driver should work.

This, sir, was extremely helpful. I followed the steps pretty much exactly, and it worked like a charm.
– Alex NicholFeb 14 '16 at 23:07

With all due respect and bonus points for perseverance, IMHO this is also rather cumbersome. See here, you can get a wifi dongle with a chipset that supports monitor mode out of the box, for under 5 USD including shipping.
– RolfBlyJun 11 '17 at 21:05

I don't understand what to do in Step #2 // need help.
– Ray KodiakSep 16 '16 at 4:17

Inside the git repo you cloned in step 1 ('linux' directory)... Edit the file 'linux/drivers/net/wireless/Kconfig', comment out the 2 lines with rtl8192cu in them by adding a '#' to the beginning of the line. Edit the file 'linux/drivers/net/wireless/Makefile', comment out the 1 line with rtl8192cu, uncomment the line with rtlwifi.
– Matt MSep 16 '16 at 18:59

Great instructions. Thank you. Couple of more things I needed to do...

When I rebooted my raspberry pi 3 with the new image (4.9.13-v7+), lsmod did list the rtl8192cu though the rtl8192cu directory was in /lib/modules/4.9.13-v7+/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192cu
Solution: I had to do a sudo modprobe rtl8192cu