Create new Dia UML diagram for revised TitleState

This new diagram outlines all of the changes that will be made in this
branch.

To start off with are some changes to TitleState and moving some of its
functionality over to the new IntroAnimator and OptionList classes.
(Having one class do everything is so totally wrong, especially in
an OO-project like this one!)
Add OptionList subclasses to Dia UML diagram

These subclasses are PressStartPrompt, MainOptionList, and
BattleSetupList. Each represent a different list of selectable
options on the Title Screen.
Export Dia UML diagrams to PNG

This will allow for easy viewing of the diagrams without having to run
Dia.

These images should be updated whenever the .dia files are edited.
Modify Sound attributes in the UML diagram

The Sound attributes that deal with sound effects have their names
reversed (e.g. 'confirm_sfx' -> 'sfx_confirm') for easier grouping.

Tbe music attribute in TitleState has also been removed, since PyGame
has a dedicated stream for music playback and thus does not require a
Sound object for music.
Create Option and BattleSetting in UML diagram

Aside from these new classes, other changes include:
* Showing that TitleState is a subclass of State
* Adding a draw() method to OptionList
UML: update_battle_settings() in BattleSetupList

This new method will allow BattleSetupList to modify the battle data
within the StatePass with its own information.
UML: New constants for Title background and logo

These constants include:
* BG_FRAMES, BG_DURATION, LOGO_FRAMES, and LOGO_DURATION in TitleState
* BG_OFFSET in IntroAnimator
Begin writing Option class in new file

This marks the beginning of the actual code revision. All code will be
written to the new file, "title_state (new).py", which will then
overwrite the original title_state.py once all of the new code has
been written and debugged.
UML: Some changes to Option and BattleSetting

These edits will make both classes a little more orderly in their
functionality.
Add battle_setup_arrow_left.png

This arrow and its mirror image will be shown when scrolling through
values while setting up a battle on the Title Screen.
Add two int arguments to Option's init method

The new arguments represent the x and y-coordinates for an Option
instance.

Option texts should have a fixed position on the screen, hence why
their positioning must be known when creating each instance.
Finish writing the Option class

All of the planned methods and attributes have been added to the Option
class. There may be edits in the future, but for now we will be moving
onto the other classes in the TitleState module.
Add documentation for x and y args in Option init

Whoops, forgot to document those two arguments in the last commit.
Enhance Option class documentation

Some awkward wording in the docstrings was fixed up.

The summary of render_text() was also made a little bit clearer.
Create the BattleSetting class

For now, we have the class docstring with documentation on class constants
and instance attributes, as well as declaration and assignment for the
class constants.
UML: More changes to Option and BattleSetting

These edits include:
* Swapping the values for the text color constants (obviously, the
  lighter color should be the highlight color).
* Adding two integer arguments to BattleSetting's init() method for
  the x and y-coordinates. (Note how the same thing was forgotten
  in the Option class until one of the previous commits!)
* Allowing BattleSetting to polymorph the highlight() and unhighlight()
  methods, since it will also need to recolor the separate value text.
Add the transform() method to Graphics module

You never know when this might come in handy.
Create init() method for BattleSetting
Create scroll value methods for BattleSetting
Create highlight methods in BattleSetting