[BUGFIX] Add mbstring extension to composer.json

This helps it work on heroku, where mbstring isn't available by default.
[BUGFIX] Apply CSS attribute names regardles of case, outputting lowercase attributes and selectors

\#myID P { margin: 0px; } was not being applied correctly from style block
p { MARGIN: 0PX; } was not being applied correctly from style block
all inlined css from passed in css and parsed out <style> blocks is now lowercase

[BUGFIX]Prevent incorrectly capitalized CSS selectors from being stripped

Some wysiwyg editors seem to generate terrible CSS such as:
P {
    PADDING: 0PX;
    MARGIN: 0PX;
}
which due to the capitalized P was not being applied inline.

[BUGFIX] Apply CSS attribute names regardles of case, outputting lowercase attributes and selectors

p { MARGIN: 0PX; } was not being applied correctly from style block
all inlined css from passed in css and parsed out <style> blocks is now lowercase

Prevent incorrectly capitalized CSS selectors from being stripped

Some wysiwyg editors seem to generate terrible CSS such as:
P {
    PADDING: 0PX;
    MARGIN: 0PX;
}
which due to the capitalized P was not being applied inline.

fix my dumb

replace deprecated preg_replace /e with preg_replace_callback to pass php 5.6 travis tests

fix my dumb

replace deprecated preg_replace /e with preg_replace_callback to pass php 5.6 travis tests

Change undercase behavior to not change the case of the vss attribute value.  Font names, content property (http://www.w3schools.com/cssref/pr_gen_content.asp) should be left alone.
This fix exposes an inconsistency in the output CSS.  Now all code paths output the css with no spacing around the : or ; which is breaking approx 25 unit tests that will be updated for the next commit.

update the unit tests to expect no spaces in all resulting CSS instead of the mixed ouput based on what code path created it.
update the regex to not skip when uppercase chars were present, added todo for possibly removing preg_match for less expensive explode.
removed a few extra var_dumps I had left behind

ran the .travis stuff manually to verify formatting / unit tests / lint and fixed formatting a bit, removed TODO but left comment in order to avoid generating a warning
Add removeDisplayNone option + tests

This adds an options parameter and some tests for a `removeDisplayNone` option
which specifies if the Emogrifier parser will remove elements with the style
"display: none".

Unfortunatly, the nice little optimization has some consiquences.

When writing responsive email templates, "display: none" is used often to hide
certain sections of the template for desktop email clients and show them in
phone clients.

I can see how it'd be nice to clean up elements that will not be displayed in
some cases, so that's why I made it an options field.