Part 1 of support for CSS selector auto-prefixing. This modifies the
@component rule to make the component name optional, in which case the
prefix for class names and def constants is derived from the @provide
package name. This also includes changes to the Quark appbar showing
how the new feature can be used.

Note that there's one oddness here, which is that I had to use
SourceLocation (which is normally used only for debugging) to be able
to match @component rules with the correct @provide rule. The reason
for this is (a) at this point in the processing all of the GSS files
have been concatenated together, so that there are many @component /
@provide directives mixed together in the same scope, and (b) the tree
visitor interface gives no means to detect the boundaries between
source files. I'm open to suggestions on how to do this better.

Other than that the change is relatively straightforward.

This is a second try of CL 67707321 that was rolled back in CL
67712609. This changes the logic so that multiple @provides are once
again allowed unless there is an implicitly-named component.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67768691
Allow @component name to be a quoted string, in which case it converts
it to camel case for class prefixes and upper underscore for def
prefixes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67844334
java/com/google/common: CL generated with data from dead-code analysis
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68103937
Don't compute shorthands for custom properties. For some custom properties,
like "border-left-height", the shorthand computation was throwing an uncaught
exception and crashing the parser. Because custom properties are never queried
for their shorthands, it is safe to make this change.

Tested:
    Added new tests.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68524661
com.google.common.css.OutputRenamingMapFormat: Add a new CSS output
renaming map format, CLOSURE_COMPILED_BY_WHOLE, which outputs the
given substitution mapping as-is.

This allows the use of SimpleSubstitutionMap with class names
containing hyphens when building a CSS binary.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68577553
Remove the roundedCornerImage GSS functions.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68603600
Add -webkit-app-region to the CSS compiler's list of recognized properties.

See: https://developer.chrome.com/apps/app_window#type-FrameOptions for more
details
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68889041
Part 2 of CSS package-relative selector work. This adds support for
the '%' prefix to opt-in to prefixing. It also updates the logic to
only prefix the first class selector in a selector expression.

The new behavior is disabled via a flag. This means that the the old
behavior, which is to prefix every class selector, will be in
effect. There are unit tests for both the old and new behavior.

Even when disabled, the new % syntax is accepted, however it has no
effect. This will allow us to add the % syntax to existing GSS files
in preparation for enabling the new behavior.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68913910
GssParser: Added support for drop-shadow and custom properties to support
space-separated arguments.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69136866
Now that all existing GSS files have been migrated, turn off the
'legacy' flag for CSS component prefixing.

Note: In order to test that the migrations have been done correctly, I
built all of the GSS for a large internal project, both with and
without the legacy flag, and did a diff of the two versions. I
confirmed that they were both identical.

(The legacy flag will be removed in a future CL).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69170590
Removing legacy mode flag from ProcessComponents.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69308574
Changes the TemplateStylesheetPrinter to be compatible with
gssv2. Nothing is yet producing gssv2 output, so no change should be
noticed by GSS users.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69405735
Ensures that leaveImportRule is only called if enterImportRule returns true.
Also ensures that import block children are only visited if enterImportBlock
returns true.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69772664
Changes the TemplateCompactPrinter to produce gssv2 output.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=70060075
Add 'local' to list of functions that accept space separated arguments.

Examples lifted from http://www.w3.org/TR/css3-fonts/
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=70701083
Add will-change as a CSS compiler recognized property.  See
e.g. http://lists.w3.org/Archives/Public/www-style/2014Jan/0117.html
for reference.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=71405172
Fix the Component pass for GSS so that multiple argument @component
rules can be used in a single compilation.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=71432278
Add support for the -ms-high-contrast-adjust property.

More information here:
    http://msdn.microsoft.com/en-us/library/windows/apps/hh441137.aspx
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=71436069
Add @overrideDef (analogous to @overrideSelector) to explicitly ACK
and override defs. This is strictly better than @suppress since the
namespace must be included and is checked for @require.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=72340927
Adding support for CSS property backface-visibility

This is supported without prefix in some browsers. See:
https://developer.mozilla.org/en-US/docs/Web/CSS/backface-visibility
http://css-tricks.com/almanac/properties/b/backface-visibility/
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=72352264