render cache: use id(d) as the key.

This is needed so we can start defining __eq__ on various
displayables, even when we don't want them being considered the same
by the cache.
Make styles comparable.
An object should be equal to itself.
Make more Displayables comparable.
Add renpy.image_exists, a function that makes it possible to tell
if an image exists.
Allow auto to take images as well as image filenames.
sl2: Redraw cleared displayables.

If we don't do this, we won't actually show the changes.
sl2: Update the scope when we reuse a displayable.
sl2: Use object identity and count in slfor.
sl2: Do not pass keywords intended for a displayable to its parent.

Due to inheritance of SLBlocks, we had the problem that

    frame:
        textbutton "test" xysize (100, 100)

Would pass the xysize parameter to both the textbutton and the frame.
sl2: Implement constant displayables.

These are displayables that have constant arguments and constant
children, and hence where the same displayable can alwaye be used.  We
use a very fast path for these displayables (simply retrieving them
from the cache), and avoid evaluating their children entirely.
Added Italian translations for launcher and template
Evaluate button role and sensitivity per-interaction.

This lets us reuse buttons, and still update the role/sensitivity
as the actions dictate.
Get a new adjustment from bars on each interaction.

This lets us reuse the Bar objects, and yet update the object in
the face of changing data.
Reset Viewport and Input when first shown.

This supports reuse, by eliminating state state from these
displayables.
sl2: Transforms take a child parameter, while transforms just take an argument.
Add --compile and --lint arguments.

--compile compiles the script before doing anything else.

--lint is a backwards compatable way of invoking the lint
command. We've been parsing it as an argument for a while, but it
didn't work.
sl2: Make the version of screen language used configurable.

For now, this is controlled by an environment variable.
Do not attempt to resize a 0-width or 0-height displayable.

This prevents a divide-by-zero.
A regression prevented insensitive buttons from working.