Including Member Login to a CiviCRM Site
You have a few questions here so I will try to address them individually.

The login and user accounts are handled by WordPress. CiviCRM syncs with the WordPress user accounts so when a WordPress user is logged in it connects to a CiviCRM contact. If that user then goes to register for an event, make a contribution, etc. the form will populate with their current information and changes will be saved to the CiviCRM database. 

There is a WordPress plugin called "Members" which allow you to create custom user roles and has a nice login widget. 

You can use a combination of profiles &amp; the user dashboard to allow logged in users to view and change their engagement with your organization through WordPress front end pages.

This plugin https://civicrm.org/extensions/civicrm-wordpress-member-sync will change a user's role based on their membership status. So if a you have restricted content or discounts based on membership and a membership for a contact expires the user's role will change to reflect their new status and content will be restricted.

There is a lot here but with some planning it is all doable.