Add hooks for overriding default email inline styles

Currently any h1, h2, h3, a and img tags in a HTML email without a
style attribute will have a default inline style applied to them.
These styles are hard-coded and cannot currently overridden without
patching the source code.

This commit adds two filter hooks that allows the theme developer to
override both the list of tags that have a default style applied to
them and the default styles applied to each tag. The hooks are:

1. woocommerce_email_style_inline_tags
This filter hook returns an array of tags which will have a default
style applied to them - you can both remove and add any tags which
you need for your theme's custom emails.

2. woocommerce_email_style_inline_{name}_tag
This filter is called for every tag name returned by the filter hook
woocommerce_email_style_inline_tags. The styles are passed as an
associative array so you can both add and remove any of the default
styles applied by WooCommerce.

Fixes #3597.
Adding support for percentage factor of additional costs.
Show woocommerce messages in empty cart. Fixes issues when a message is queued to be displayed and user is redirected to cart page where he/she can not see any messages.
Filter user_has_cap with woocommerce_customer_has_capability
Check if user is allowed to cancel and order an order again. Use current_user_can() checks instead of hardcoded user_id comparisons to determine if user can view, pay, order again or cancel an order.
Use default priority for user_has_cap filter
Add download_file capability and security check
Fix missing semicolon
Add product download access grant/revoke hooks.
Add woocommerce_my_account_get_addrresses filter and allow getting custom address type fields.
Allow editing custom address types
Allow saving custom address types. Add address type to woocommerce_customer_save_address action
Fix missing question mark
Remove trailing leftover bracket
Add woocommerce_checkout_get_value filter.
Removed @coenjacobs helpers and cleaned up main clas
Moved template part functions to core functions Closes #3715
Removed 'widget_text' from array of force_ssl filtered objects.

Forcing SSL for all content in the text widget prevents adding links third party sites that do not support SSL. (ie. Partner sites). Furthermore, it's the assumed responsibility of the individual entering HTML into the text widget to ensure site security when referencing to outside sites.
French translation corrections
Merge pull request #3653 from pixeltrix/add-email-style-inline-filters

Add hooks for overriding default email inline styles