Online payemnts with commerce: what charges should I expect
you shouldn't pay for the module itself, most gateways have free modules, see https://drupalcommerce.org/extensions/module/payment. When you click on each module the CommerceGuys have been so nice to list transaction fees
I recommend not using a gateway charging more than PayPal. See their fees here: https://www.paypal.com/dk/webapps/mpp/merchant
Laws on online payments differ from country to country, so there isn't one answer to this. To my knowledge PayPal is the closest thing to free. No-one handles payments for free but some don't take setup fees, only transaction fees. 
Accepting cards directly on your site requires a lot from you, both in terms of subscription to an organization offering merchant accounts (NETS in my case charges around 300€ for this in Denmark - and have a monopoly on the market). Proper gateways like ePay etc. furthermore charges a subscription plus transaction fees (on top of whoever has given you the merchant status). Finally you need to meet certain criteria about how you handle payments. For Example:

It's illegal to accept payment for something yet to be delivered in DK, so our gateway has to be able to only reserve the money. We're also obliged to offer our terms and conditions on both english &amp; danish. And the list goes on - and varies locally.

I recommend you to keep it simple and easy by using PayPal until your sales are high and your knowledge on these matters have increased significantly.
For your last question I again recommend the drupal commerce module list in my first bullet