> Should I put all customer's data in single database or should I use one separate database per customer?
Do a financial forecasting: given your pricing, how many people do you need to subscribe to break even?
Can you enlist enough people for the same vision to be able to maintain your business from SAAS alone?
If yes, keep the whole thing in a single database (reduces maintenance); if the number seems daunting, you might want to consider also selling customization via consulting.
For providing customization, it's generally a good idea to have each client's database seperated from the other, so that individual changes impact only a single client.
> 2) I want customers(and 3rd party developers) to be able to develop their own themes much like Wordpress. How should I architect my app to do that?
One way how you might achieve that is keeping the code - design HTML strictly separated. At the simplest level, you can do string substitution (eg: in the design HTML gets filled up with the content from the database); a templating engine might be useful for complex cases.
> 3) Should I go with Python/Flask or Python/Django or PHP/? I'm comfortable with all three but I don't know which one is better for SAAS app.
Go with the combo you have the most understanding of. You will invariably come across edge cases, that aren't covered by these, so you will need to know how you can drop into the framework, and fit it to your needs.