Made @bindable decorator do a bit of sanity checking on what it's decorating
Tightened up UserConfig __dir__ and __iter__...

to account for the possibility of using existing attribute names as dict keys,
which is not allowed!
Added configuration of GST_LOG* environment variables...

so that we can tell gstreamer to log messages to a file!
Moved clamp to util file, fixed issue when bound is zero
Added seeking behaviour...

It's a bit choppy at the moment, just like volume changes - will investigate
using a controller to smooth out things at some stage.
Updated .gitignore
Added pre-commit-hook file...

that any dev can ln -s to in .git/hooks/ so that we run all our tests
per-commit.
Added nose and nose-progressive as development requirements
Made a gst.Pipeline instead of just using a bare playbin
Added gst_log_calls decorator to log pyamp method calls to gstreamer logs...

Because tracking down what's going on with gstreamer when it goes wrong is
proving to be... interesting?
Made a sink_bin to handle the pipline to tag onto the end of playbin...

Mostly following http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+7%3A+Custom+playbin2+sinks
as an example. This actually seems to play, but I need to fiddle some more!
Move gstreamer setup into a method of its own...

It means we can trash those extra logging lines in favour of a decorator, and
that we can see more clearly what is gstreamer setup and what is our own
class's setup.
Made fading out now use a Controller...

which works on an independent volume element, where it didn't seem to on a
playbin2...
Print a warning if the user tries to keybind a non-existent function
Made volume controls use new controller mechanism
Made fade out have a separate volume element to user volume...

This should make fade outs easier to manager. As a side note, I'm getting an
annoying volume discontinuity when using fadeout! Need to track down the
source...
Merge branch 'controller'

Now do volume changes with controllers, which is muchos nicer than just
fiddling with properties in a non-time-synced manner. This required making the
gstreamer pipeline a little bit more funky :-)
Made initial volume setting configurable...

I've put it under a 'persistent' category, which may end up being specifiable
in a separate file which will get written out on player exit, but I want the
user to be able to override any persistent settings with favourite startup ones
anyway.
Moved blessings.Terminal augmentation to separate file
Rearranged modules, added some Python logging setup...

Wanted to split up pyamp as it was not focussed enough in scope, but
therefore ended up having to fiddle with the late gst import again because
a teeny bit of gst usage has currently bled out of the player module.
Considering refactoring so that we can do away with any nastiness!

I've also made a PyampBase class, which simply makes a logger available for
each child class so that I don't have to manually keep getting loggers
everywhere.