RP branded emails.

* Create a new model on the front end, rp_info.js, to keep things sane.
* Add new backend validation types: color and image
* Add backend tests to check backgroundColor and siteLogo
* Update the copy in HTML and text emails as per @ryanfeeley's suggestions.
* Loads of email styling updates to work across webmail and mobile.
* Use a common _header.html.ejs and _footer.html.ejs shared across all emails so updates are simpler
* Simplify the email template configuration - only specify the template filename, not the full path.
Boost the max POST body to 128kb to allow data URIs when staging an email address.
Pass the siteLogo whenever calling sendConfirmationEmail for unverified emails.
Remove data-URI support for siteLogos since GMail doesn't support them.

* Add new getter to the RpInfo model - getEmailableSiteLogo which only returns a siteLogo if it is https based.
* Return the max-POST limit to 10kb
* Add a new test suite for the RpInfo model
Set the background-color CSS attribute to prevent the black background color.
Use validator's isHexColor to validate colors. Ensure image URIs are strings before decoding.

* Requires an update to validator
Use a constant for the DEFAULT_BACKGROUND_COLOR instead of a magic number.
Add the missing semi;
Update the doc strings for functions that take rpInfo
Replace `this.rpInfo` with `User.rpInfo` which allows a simplifcation in the tests.
Merge pull request #3857 from mozilla/rp-branded-email

RP branded emails.

@6a68 thanks for the super thorough review! I made the requested changes, further integration of RpInfo is coming. 

Jared gave the r+, merging to begin testing.