Is there a module that changes the user URL from "user/1" to "user/username"?
Pathauto does exactly that.
All new user aliases generated after enabling the module will look like
users/[user:name] (obviously this could be changed in module configuration - Configuration / URL aliases / Patterns).
You can use "Bulk update" to generate aliases for already existing users (and other type of content).
You can always use the Me Aliases module. It doesn't matter what user is logged in; they can use "user/me" to access their own accounts.