Don't lint config.py

It's autogenerated and the paths can be an arbitrary. So it can
overflow line length depending on where you install it. Fortunately
there is not much to lint in config.py.

I'm doing this using flake8 because the pep8 exclude option is not
very good and doing this in the code is nicer anyway. flake8 runs
both pyflakes and pep8, adding extension support and the ability
to exclude lines and entire files.
Merge pull request #66 from dnarvaez/pep8

Don't lint config.py
Use the sugar gtk3 toolkit

Nothing in the shell should use the deprecated toolkit.
Port sugar-launch from OptionsParser to argparse

OptionParser is deprecated.
Add --uri argument to sugar-launch

We are going to use this to launch html activities tests
but it could also be useful to users, to launch a browser
from the command line with a certain url.
Add support for SUGAR_PROFILE_NAME variable

If this environment variable is set, we skip the intro UI
and just setup the profile using that name.

This is going to be useful to run automated tests of the
html activities.
Add support for SUGAR_RUN_TEST variable

When set the sugar shell runs a subprocess with
the command line specified by the variable, watches
it and exits with the same status code.

This will make it easy to run tests inside the shell
environment, html activity tests in particular.
Redirect test output to a log file

Otherwise it gets mixed with the rest of the
shell.log.
Support SUGAR_TEST_LOG variable

This will be useful to redirect the test output to a know location
outside the profile so that buildbot can watch it. In this case just
append to the file instead of overwriting, the caller can delete the
file if that's the behavior it wants.
testrunner.py - better check for None
Volume device icon: change GObject.idle_add to GLib.idle_add

Follow up of 873c8b3affbc6474b544716cc3c9b93aa19f2821
Return metadata on datastore.load
Fix build docs link
Split datastore.load

Into load_data and get_metadata. We need to be able
to get them separately because loading the data is
expensive and you might not always need to load it.