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
Merge pull request #419 from kyouryuukunn/update_japanese_template

update japanese template
Reduce over-passing of show arguments to nvl screen.

We would pass say_vbox_properties, which is only used in pre-screens
code. When iterating through a say_list containing multiple
lines of text, we could use say_args from a previous line.
Do not convert the screenshot to the screen's format.

The screen's format may not be the for RGBA format we expect surfaces
to be in when we load them into textures. This would cause
FileCurrentScreenshot to break.

Fixes #314.
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.