username and email request for lti module

allow username and email can be passed to a lti third party app
ask user permission when lti button is clicked
allow course editor to customize text on lti launch button


Testing notes: Course tarball is here https://openedx.atlassian.net/secure/attachment/11799/2014_T1.tPB9cH.tar.gz

**Instructions for manual testing:**

Import the course in studio attached to the pull request. Go to the only unit that there is.

**Testing Username/Email**

In the settings for the LTI module, you will see that "Request user's username" is true. If you click the button, a confirmation dialog will appear informing the user that their username would go to a third party app. If you click ok, you will be transferred to a random third party LTI site I found online. You can use the network tab in your Chrome dev tools to see that the username is passed in with the property "lis_person_sourcedid" of the request headers. Repeat for requesting the email ("lis_person_contact_email_primary"), and for requesting both the username and email.

If neither username or e-mail is selected to be requested, the confirmation dialog does not appear.

**Testing button text**

You'll see that I've entered new button text for this demo. If you edit the button text in the settings to be empty, you will see that the button's text is what it has been in previous versions of the code 'View resource in a new window'

**Testing application description**

You'll see that I've already entered fake text for an application description. You can edit it from the settings.
Don't use `dict.update` when you've only got one value to update. Just do `body["lis_person_sourceid"] = self.username`.

Also, `lis_person_sourcedid` is a really obtuse name. Can you replace it with something clearer, please?