Added a Convolutional Neural Network, compatible with
sklearn API: init, fit, predict

this code has been tested and works better than pulsar_nnetwork, but
predict_proba has yet to be implemented, and some code-tidying is
necessary

consider this an initial commit
classifier.py:
 * added "class cnnclf", the convolutional neural network
 * added "class MyError" for proper raising of exceptions

sktheano_cnn.py:
 * moved call to ready() from init() to fit(),
  so array shapes are determined in call to fit(), similar to behaviour
  in sklearn
added a predict_proba routine to MetaCNN
changed return behaviour of predict_proba so that it always returns
array of size
[nsamples, nclasses]

if nsamples=1, it was returning [nclasses]
some code tidying...
added more documentation
changed some of the default settings
added cPickle load/dump functionality (note some routines
are provided by sklearn.BaseEstimator)

changed the default CNN settings for good intervals and subbands
performance
analysis_tools:
   prettify the plots

classifier.py:
   - remove *args option in classifier, this makes it sklearn + cPickle compatible
   + add randomshift=True option. If False, we don't apply a random phase shift
       (this is used in conjunction with training.pfddata centre option...
        centre aligns the peak profile to phase 0.5, so set randomshift=False to
        keep the centering)

sktheano.py:
   + set default options to best intervals and subbands option

training.py:
   + add centre=True option to align peak of feature to phase 0.5