Efficient view converter

Simplified DefaultViewConverter's view conversion methods. They now return a view, rather than a copy, whenever possible. Should help when doing trivial preprocessing (e.g. pylearn2.datasets.preprocessing.CentralWindow) of large datasets.
I just tried running it with GPU on in the master branch, but got the following error message:
```
Compiling accum...
graph size: 464
Compiling accum done. Time elapsed: 17.897340 seconds
/home/mifs/mkg30/projects/external/pylearn2/pylearn2/datasets/dense_design_matrix.py:1452: UserWarning: It looks like DefaultViewConverter.axes has been changed directly, please use the set_axes() method instead.
  "instead." % self.__class__.__name__)
Traceback (most recent call last):
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/scripts//train.py", line 252, in <module>
    args.verbose_logging, args.debug)
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/scripts//train.py", line 242, in train
    train_obj.main_loop(time_budget=time_budget)
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/train.py", line 197, in main_loop
    self.run_callbacks_and_monitoring()
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/train.py", line 242, in run_callbacks_and_monitoring
    self.model.monitor()
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/monitor.py", line 239, in __call__
    for X in myiterator:
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/utils/iteration.py", line 830, in next
    for data, fn in safe_izip(self._raw_data, self._convert))
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/utils/iteration.py", line 830, in <genexpr>
    for data, fn in safe_izip(self._raw_data, self._convert))
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/utils/iteration.py", line 790, in fn
    return dspace.np_format_as(batch, sp)
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/space/__init__.py", line 456, in np_format_as
    space=space)
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/space/__init__.py", line 516, in _format_as
    return self._format_as_impl(is_numeric, batch, space)
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/space/__init__.py", line 924, in _format_as_impl
    return _cast(format_func(batch, sparse=space.sparse, mode=mode),
  File "/home/mifs/mkg30/projects/external/pylearn2/pylearn2/format/target_format.py", line 98, in format
    raise TypeError("need an integer array for targets")
TypeError: need an integer array for targets
Command exited with non-zero status 1
```