Add application category for OS X

The Applications folder in OS X is large and installers tend to expect apps to stay where they were placed (i.e. the root of /Applications). Since Lion, there's been application category metadata for View --> Arrange by Application Category but if the metadata's not in info.plist, the app gets sorted into "Other" at the bottom. 

https://developer.apple.com/library/Mac/releasenotes/General/SubmittingToMacAppStore/#//apple_ref/doc/uid/TP40010572-CH16-SW8 (this applies to all Mac apps, not just those installed through App Store).
autosave before load
Add config.autosave_on_quit.

This variable lets us control if Ren'Py autosaves when entering the
quit or main menu prompts.
Merge pull request #338 from kyouryuukunn/autosave_before_load

autosave before load
Make autosave_on_quit apply to autosave on load.
sl2: Fix sl2viewport.

We now properly get the outer and inner elements for all sl2viewports.
sl2: Pop the open viewport from the ui stack.
Add portuguese translation by mrstalker.
sl2: Track which SLNodes can have keywords.

There are certain nodes that can't have keywords, like if nodes that
occur after a python statement that defines a variable used by the if
statement.

This change ensures that we only execute the keywords() method if:

* Some keywords are present.
* Nothing precludes the keywords method from running.
If a Fixed with a layer_name does not have a scene list, do not copy it.
_hide hides the hiding screen, not the not-hiding screen.

This fixes a regression that caused screens without hide transforms to
immediately become empty, even when they should have been used in an
old transition.
sl2: Improve prediction of screens.

This includes:

* When predicting, we do not stop on the first exception. Instead, we
  keep going, trying to predict what we can.

* This includes screen parameters and arguments as well.

* If we can't evaluate the list part of a for loop, we use [ 0 ] - in
  conjunction with the error handling, this should get us
  something. In many cases, it gets us everything important.

* Once per if statement, we predict all branches.
Perform save dumps before we pickle things.

This makes config.save_dump a powerful tool for debugging pickle
problems, where previously it was only useful for finding out the size
of save files.
sl2: Properly finish and imagemaps.

Previously, we were failing to finish the imagemaps we created, which
both leaked the md5 object and generally hurt performance.
Do not save ScreenDisplayable.children.

This is recreated on load, and saving it just leads to slower save and
load times.
Add config.autosave_on_choice.

This variable determines if Ren'Py autosaves at menus.
Use an adv-mode narrator for adv-mode _default_empty_window.

Fixes #330, using kyouryuukunn's second approach.
Merge pull request #324 from duanemoody/master

Add application category for OS X
Mouse focus only on mouse events.

We had been using the mouse to determine focus at the start of
each interaction. We now only use the mouse to determine focus
if the last event - the event that ended the interaction - was
a mouse event.

Fixes #299.
Handle android mouse release move in Ren'Py.

Previously, we were handling this in SDL. However, this conflicted
with the MOUSEMOTION merging - the other event could be moved before
the mouse release, leading to unsightly jumps, and (perhaps) the
viewport being in the wrong place.

We now synthesize the mouse release move in Ren'Py, which lets us
control the order in which it occurs.

Fixes #391.