Extension work

This PR moves us to the new *.ks extension, after this all of the basic file actions still work with the basic implicit extensions.

Still to do:
* make explicit extensions work
* a ton more testing

I realized i wasnt actually making progress on this so i think ill throw this up and we can discuss it.