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.
@paulmedwal  It'll looks so in the template:
```mako
data-metadata='${json.dumps(metadata)}'
```
and so in the lti_module.py:
```python
def get_context(self):
  ...
  return {
    ...,
    'text_box': self.text_box,
    'button_text': self.button_text,
    'metadata': { 
      'request_username': self.request_username,
      'request_email': self.request_email, 
    },
  }
}
```
With these changes, we do not need to change the template as soon as some additional parameters need to be added. Does it makes sense?