A1. The Internet template should create entries in your web.config that look like this.
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
This configures the role and membership providers used by SimpleMembership. When I create an Internet template for MVC4 on my machine with VS 2012 they are always there. Make sure you are looking at the web.config in the root directory for your application, not the one in the Views directory. This information should be in the root web.config. If it is not there you need to add it for SimpleMembership to work correctly.
A2. The other providers are overridden when you put the information in your web.config, as shown in A1. Notice that the clear element is used first to clear out any previously defined providers.
A3. The InitializeSimpleMembershipAttribute is adorned on your AccountController to perform a lazy initialization of SimpleMembership. It is only called if you try to access AcccountController actions. For example, as soon as the user goes to log in it will initialize the database. This method of initialization was done so that an application created with the Internet template would still work if forms authentication is not used. I do not like this method of initialization and prefer to do it in the Global.asax Application_Start method if I am doing forms authentication. You can read how to change your app to use this initialization in this article.
If you call WebSecurity.InitializeDatabaseConnection more than once it will throw an exception. It is always a good practice to wrap it in an if statement that checks WebSecurity.Initialized.