ye-es to all of these but how well depends on the detail.
1. Users can create their own accounts (email based authentication), find courses and enrol on them. You can use PayPal to charge for them.
2. Same as 1. Moodle doesn't differentiate until you add people to a course (as student or teacher)
3. You could set up an open 'Tutor' course that allows a search of participants and then you can see their enrolments.
I suspect it may not be exactly what you have in your head but it could be done.