More string normalization. Should fix #121
Expands ~ in emulator location. Fixes #131

An emulators location is grabbed from the config file, but when I just
stored it directly as a string. When I went to build the command string
I made sure to do os.path.expanduser, but I forgot to do so in the
startdir. To fix this, I call os.path.expanduser as soon as I read
the location from config so that it is formatted correctly every time I
reference it later.
Adds ROM Location as option to consoles.txt.

Allows the user to specify a custom ROMs location in consoles.txt on a
per console basis. When this location is provided, Ice will search for
ROMs on that console in the specified location. If this location doesn't
exist, Ice will attempt to create it. If it is no writable, Ice will
disable the emulator and print an error message. When a custom location
isnt provided, Ice will fall back on the current scheme (subfolder named
after the shortname as a subdirectory of the location specified in
config.txt).

One thing that should be noted about this commit deals with how Ice sees
'deleted' ROMs. To avoid removing peoples previous shortcuts, Ice will
only delete a shortcut if it sees the ROMs directory in the exe path.
When a user switches to a new ROMs path, it seems reasonable to expect
that any shortcuts added at the old location would be deleted. Since the
ROMs directory changed, Ice assumes that any shortcuts in the old
location should be left alone.

This commit fixes #120.
Adds utils.py for general python utility functions
Move console reading settings data to initializer
Adds ability to set icon for console. Fixes #108

consoles.txt now has an optional 'icon' parameter. This value is a path,
and when set is set as the icon file for all games of that console. When
not set, the icon defaults to the empty string, which Steam interprets
as using the icon of the emulator instead.
Removes emulator manager and cleans emulator code
Merge pull request #122 from marcusmoller/master

More string normalization. Should fix #121
Updated README with a setup guide and new functionality

Linked to Getting Started and removed redundant info
Merge pull request #132 from geraldhumphries/readmeupdate

Updated README with a setup guide and new functionality.
Added a better logging system using the logging module
Merge pull request #140 from marcusmoller/master

Added a better logging system using the logging module
Added execute permissions on ice-qt.py
Merge pull request #145 from justin8/master

Added execute permissions on ice-qt.py
Adds prefix option for ROM titles in consoles.txt

Adds an optional parameter to consoles.txt, called 'prefix'. When naming
ROMs in Steam for a console, the value of the 'prefix' field will be
prepended to the name, along with a space. For example, if the prefix
was '[N64]' and the ROM name was 'Smash Bros', the final name in Steam
would be '[N64] Smash Bros'. If the value of the 'prefix' field is the
empty string, then no space is appended.

Fixes #116
Adds ability to get grid images locally

Splits grabbing of grid images into two classes, LocalProvider and
ConsoleGridProvider, along with some architecture changes to allow an
unlimited number of providers.

LocalProvider looks in a consoles 'images
directory' (which can be specified in consoles.txt) for an image with
the same name as the ROM. If one exists, it will use that

ConsoleGridProvider does what Ice has been doing before, queries
ConsoleGrid to see if an image has been uploaded for the game. If so,
will download the image and use that.

Fixes #106
Adds ice.log to gitignore
Renames the prefix-related methods in rom.py

Originally when prefixes were added, rom.name() would give the ROM name
including the prefix, and rom.basename() had to be used to get it
without the prefix. I decided that the prefix is only really useful in
one situation (creating the shortcut) so it made no sense to hijack a
method which had been in use for such a long time. Instead, rom.name()
behaves as it used to, and the prefix related code has been moved to
rom.prefixed_name(). rom.to_shortcut() has been changed accordingly
Updates documentation in consoles.txt

Fixes #123
Updates Binary-README.txt

Binary-README.txt contained completely outdated information. It
described how to get started with the OLD Ice, which means that it hasnt
been relevant for months now. This commit updates the contents of the
file, and includes links to the website for further reading.

Fixes #142