Hi SpaceCowboy,
for No 2) I can tell you that you can put your own headers wherever you want (maybe it would be best to put them in your Nios II IDE project directory) as long as you inlcude them correctly into your *.c file.
You also can use the automatically generated header files out of the bsp project. There, you can find headers for accessing the SOPC components with Macros like IORD and IOWR in io.h for avalon memory slaves. So, depending on the avalon component you created (memory slave, master or streaming, etc.) you can find basic header files in the automatically generated bsp project.
Everything that goes beyond this has to be written by yourself, because you are the only person who knows the internals of your component (such as control registers, addresses and general functionality).
I hope this helped a bit to show you the right direction.
As you mentioned the "cpu_sdk", I guess you come from NIOS I development. That is exactly the way i went through, too. I would suggest to read this document
http://www.altera.com/literature/an/an350.pdf, as it gives youm a good overview about the differences between Nios and Nios II development.
Regards,
Maik