[WIP] Interface change rebased

This is a rebase of gh-233 on top of today's master.
There were conflicts, mainly two kind:
- I replaced the implementation of CompositeSpace.make_theano_batch so it returns a tuple of Variables, not a TupleVariable
- I removed the supervised/unsupervised special casing of SGD, so we use the new data_specs instead
@goodfeli, let me know if it impacts you.

There are also additional commits to make all tests pass.