To answer your questions:
1.What is exactly the difference between them, especially between Alpha and Beta?
There isn't much difference between the two aside from the fact that you just start with a small number of testers for alpha testing and switch to a bigger group for beta
2.Only the production stage is available for people on the play store, right?
By default, only production is available on the Play Store. However, you can now add an option in your Play Store page for users to opt into an open Beta program. Link
3.which one/s allow to publish only to specific people/percentage , and in which way do you do it?
You can do that for both. To do alpha,beta testing you need to send invites to people on their google+ accounts so that they can access your app and be able to download it. The invites is usually in the form of a link directing them to your app on the play store which is only visible to them after they accept the invite
4.which stage allows in-app billing, at least for testing ? I don't get why can't i test it out even before uploading the app.
You can do in-app billing for both alpha,beta testing. Check the link: http://developer.android.com/google/play/billing/billing_testing.html
5.in the percentage method, if I publish a new app version using the same way, will it first update for the people who were lucky enough to install the previous version?
As far as my experience goes, i have seen people who were testers get the update for the app first than everyone else. But i am not so sure about how does it work exactly.
Hope this helps.