I just want to close this question by adding what happened in the end.
I installed the nvidia driver using the additional drivers configuration option, to make sure any voodoo that might be doing gets done. Then I installed bumblebee and nvidia-prime. I started out with nvidia-361 on 16.04, but am using nvidia-367 on 16.10 at the moment.
The config files need to be adapted manually in /etc/bumblebee. I am using the following for the nvidia driver:
# Module name to load, defaults to Driver if empty or unset
# colon-separated path to the nvidia libraries
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
The xorg.conf.nvidia file:
Option "AutoAddDevices" "false"
Option "AutoAddGPU" "false"
VendorName "NVIDIA Corporation"
# If the X server does not automatically detect your VGA device,
# you can manually set it here.
# To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
# as you see in the commented example.
# This Setting may be needed in some platforms with more than one
# nvidia card, which may confuse the proprietary driver (e.g.,
# trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
# Setting ProbeAllGpus to false prevents the new proprietary driver
# instance spawned to try to control the integrated graphics card,
# which is already being managed outside bumblebee.
# This option doesn't hurt and it is required on platforms running
# more than one nvidia graphics card with the proprietary driver.
# (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
# If this option is not set, the new Xorg may blacken the screen and
# render it unusable (unless you have some way to run killall Xorg).
Option "ProbeAllGpus" "false"
Option "NoLogo" "true"
Option "UseEDID" "false"
Option "UseDisplayDevice" "none"
You need to make sure that the driver version matches what you have, and the BusID is important as well.
This basically allows me to switch the GPU using the nvidia settings app (requires logging out and back in) or launching apps on a specific GPU using "optirun -b primus", which I add to Steam games in the launch settings and has worked flawlessly for me ever since.