If you are new to Plone, make them in the Dexterity Control panel
From there you can do a lot: You can export them and import them as ZIP, or (as I prefer to) export them in /portal_setup (or maybe in the Dexterity control panel) and put them in your add-on.
If you find it difficult to figure out 'what to copy', you could consider:
Delete all 'other content types'
Add your own
Export them and put them in your add on
There is one thing you might want to change, it is the line that says 'folderish', you might want 'plone.dexterity.content.Item'
If you do something 'special', it can be quite useful to add it as a behavior, then it is easy to reuse your code
You certainly can do this! Create your content types through-the-web then export them (export option within the @@dexterity-types control panel) and add them to an add-on (this can be built using the method you outline as Option 2).
In fact, I seem to recall that there's a tutorial for this in the Plone Training docs...