First set of unit tests; for nntools.objectives

Found a bug in nntools.objectives.crossentropy (no return value).

To run tests, first install necessary requirements with:

  python setup.py dev

Then run:

  py.test

(These are assuming you've activated your virtualenv.)
Woops, I meant to remove this as part of #28; it's not needed anymore.
Add unit tests for nntools.init.
Add experimental Travis configuration
MultipleInputsLayer bugfix, ConcatLayer, FlattenLayer
Cosmetics
Merge pull request #36 from dnouri/test-objectives

Test nntools.objectives + nntools.init + Travis configuration
Uniform (Glorot) is probably a better default initialization + simplified flattening code
cuda-convnet based convolution and max-pooling layers + utilities. The layers can be used as drop-in replacements for the default Conv2DLayer and MaxPool2DLayer. This means that they shuffle the inputs from bc01 to c01b and the outputs from c01b to bc01 as needed. This behavior can be turned off with the 'dimshuffle' keyword argument. If it is turned off, the user is responsible for appropriately shuffling the layer input and output. nntools.layers.cuda_convnet.bc01_to_c01b and .c01b_to_bc01 are provided for this purpose.
defer pylearn2 imports to the classes that need them, so that nntools.layers.cuda_convnet can always be imported, even if pylearn2 is not available.
Merge pull request #39 from benanne/cuda_convnet

cuda-convnet based convolution and max-pooling layers + utilities.
added NINLayer, might need some tweaking
NINLayer_c01b, optimized for c01b layout (to use with the cuda-convnet based layers with dimshuffle=False)
added GlobalPoolLayer and a utility function to count the number of parameters of a model
added input padding functionality
added FeaturePoolLayer, useful for maxout
add FeatureWTALayer, useful for channel-out / WTA / compete-to-compute
modified ConcatLayer to use a different implementation, the gradient of T.concatenate does not have a GPU implementation
Added functional tests for the examples.

These won't run unless you pass the --runslow argument (which the Travis
config uses).  They should help us make sure that no pull requests or other
commits break any of the examples.  At least not in a way where the example
raises an exception.
Theano requires libblas.so