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. 
i have been getting these exceptions when the error printer tries to print an extension and fails. This change was to help track this down.