Take all this with a grain of salt...I'm tired.
System.map is pretty much what it says, a map between the kernel and the known addresses of hardware.
abi is the application binary interface, which are the kernel "hooks" a program can call to process commands, system libraries, etc. Because these machine language addresses move from time to time, the abi provides a common directory for applications to reference.
config essentially states whatever modules and kernel settings are available. Usually 'y' - yes, 'n' - no, and 'm' - module available.
vmcoreinfo is primarily for determining which information shows up during 'core dumps' (crashes).
vmlinuz is the compressed kernel that your system uses upon boot.
You're generally not going to want to remove any of these, as they're fairly small in comparison to hard drives today, and more or less essential for a healthy (and easily diagnosed) system. I have half a dozen of each, and the largest is 4Meg, with the whole directory at 62Meg...a drop in the bucket.
On the other hand, if you're particular about every byte of space, you can compile the kernel to hard-code most of this (and leave out some of the debugging stuff), and reduce this further...but in most cases you'll lose far more than you'll gain.
After all, if these things weren't useful, they probably wouldn't exist in most distros, right?