I don't get why lafiel and jared are so opposed to this (and don't want to help). You can't get a perfectly clean implementation, but what you're asking for is certainly possiblish. Here's how it'd work:
The first thing you'd need to do is to add an entirely new ship classification (I don't think there's an actual term for this) next to Terran and Asteroids. Ship classes are created under Ships[] in rules.txt. You'll need to create a classification.txt that holds all of that ship type's information. I'd recommend starting with a copy of terran.txt and editing it from there. Note that in doing so you'll need to inherit sections from terran.txt or rewrite a lot of paths.
Once you have your classification.txt working, all you need to do is start adding your own custom parts to it. You can also mix in vanilla parts if you want. The only limitation is that you can only ever use one ship class at a time; if you wanted to mix asteroid and terran you'd have to create an entirely new ship class just for the one combination. I wouldn't recommend much past a single new ship type and maybe a new class that merges it and terran.
As far as actually getting it to work in singleplayer, you have a few options, all revolving around AllowsBuyShipRulesIDs in bounty.txt. You can either add your new ship class directly and be done with it, or if you're feeling adventurous you could create an entirely new clone of bounty mode that only allows you to use the new ship type. Note that if you want enemy ships with this new classification to spawn, you'll either have to make them spawn in every gamemode, or do some shenanigans to make them only spawn in a new gamemode, which is why cloning bounty hunter might be good depending on your plans.