First of all, root is required to edit these files.
Basically, all you have to do is add 'qemu.hw.mainkeys=0' to the build.prop in /system and reboot to enable the software buttons. If you're happy with that you can stop there, but you can also disable the hardware buttons if you want.
Go to /system/usr/keylayout and open 'Generic.kl' in a text editor and find the lines that say 'key 139 MENU WAKE_DROPPED', 'key 158 BACK WAKE_DROPPED', and 'key 172 HOME' and place a # at the start of each line. Take care here because if you add a # to the wrong line, you won't have a way to wake the phone. Reboot and those hardware buttons will be disabled.
I've tested it with various apps and the phone resizes them appropriately. Software menu buttons appear where appropriate and video players cause the buttons to fade away. The only odd thing I've found is that the app drawer is shifted to a 4x4 layout instead of the regular 5x4. Also, home and back do not vibrate properly and I'm not sure which lines to edit to fix that.