Everyone, thanks for the responses.
My two main questions now are:
1) Can I detect if someone has installed a keystroke logger on my Mac/has remote screen viewing/remote access to my computer?
2) How can I prevent something like that from happening?
1) Not easily. You can scan through the running processes (in Activity Monitor) to see if there's anything strange running; but it might not be easy to spot, and might not be running all the time. Your best bet is to install something like Little Snitch, which will at least reveal/prevent anything being sent over the network. As long as the (hypothetical) person who installed the keylogger doesn't have physical access to your machine, that should do.
(p.s. if any app should ever be bought up, and rolled into the OS, it's something like Little Snitch!)
2) For screen sharing/remote login apps, use the tips mentioned previously to ensure you don't have anything turned on that you shouldn't. That includes checking for any VNC servers (other than the OSX built-in option). For keyloggers, it's more complex. You can't do much more than:
- Password protect your account, with a long, complex password. Don't give it to anyone. Set your Mac to prompt for the password on boot, and on wake from sleep.
- Do likewise for any other accounts on the machine.
- Don't let anyone have physical access to your machine.
- Be very careful downloading any executables online.
If I was that concerned about my privacy (or more aptly, if I had that much reason to be concerned!), I'd set up two new accounts, one non-admin for everyday usage, and one admin for administering the machine. I'd transfer all files (but not apps) from my old account, then delete the old accounts.