Since you're already rooted and (I assume) running a custom recovery, there's a somewhat easy solution for this. First, back up everything from the internal memory located at /sdcard, and copy it all over to whatever physical SD card you plan on using - I went with a 64gb. This is probably fastest if you just back up all of /sdcard to the pc, and use some kind of card reader to transfer it over, you'll get much better speed, but you can do this all over MTP with the usb cable if you don't have a reader. Next, reboot into recovery and flash this
kernel, which among other things adds support for a storage swap. Clear the cache for good measure, this won't affect any user data. Reboot, and using a terminal emulator or adb shell, run the following command:
setprop persist.customboot.sdcard internal
Reboot once more, and you'll find your physical sdcard is now mounted as /sdcard, while the internal is mounted as /.sdcard (which virtually nothing will use, but that's fine). Any large games you install should put their data in /sdcard/Android/obb, or /sdcard/Android/data, or just random folders on /sdcard, all of which are now your physical card. Once you've finished the swap, you'll want to delete most/all of the files on /.sdcard, since everything there directly uses space in /data/media. Now the only thing that will eat up your internal memory are actual .apk files.
This does have one downside, the storage interface in settings doesn't really know what to think of the mod. It will claim you only have 8gb internal, but then show the free space available on the physical card. If you've got more than 8gb of stuff on the card the bar graph is completely useless, but at least the text does show the correct free amount. I've currently got around 20gb of misc games installed and working great, however if you have any Humble Bundle games keep in mind that these don't use .obb files and the larger ones will quickly eat up your internal space with gigantic .apk files.
You might also want to disable zram once you flash the new kernel. It compresses ram that's not actively being used, effectively giving you more ram at the cost of cpu/battery. I find we have plenty of ram and I'd rather have longer battery life. As root, the command is:
setprop persist.service.zram 0
You'll need a reboot after running it, of course, but you can enable the sd card swap and disable zram at the same time, rebooting only once.
This is probably the most transparent method, once it's set up you won't need to manually move new apps as you install them, and you don't need to worry about apps that write to random locations on the sdcard.