python Net.backward() helper and Net.BackwardPrefilled()
python forward() and backward() extract any blobs and diffs
don't squeeze blob arrays for python

Preserve the non-batch dimensions of blob arrays, even for singletons.

The forward() and backward() helpers take lists of ndarrays instead of a
single ndarray per blob, and lists of ndarrays are likewise returned.

Note that for output the blob array could actually be returned as a
single ndarray instead of a list.
batch inputs in python by forward_all() and forward_backward_all()
fix accidental revert of Init() from f5c28581
python style
replace iterator with indices for consistency
resize to input dimensions when formatting in python
layer definition reorganization and documentation
- split out neuron, loss, and data layers into own header files
- added LossLayer class with common SetUp checks
- in-progress concise documentation of each layer's purpose
Split all loss layers into own .cpp files
Cosmetic change in prep for data layer work
take blob args as ndarrays and assign on the python side

Take blob args and give blob returns as single ndarrays instead of lists
of arrays.

Assign the net blobs and diffs as needed on the python side, which
reduces copies and simplifies the C++ side of the wrapper.

Thanks @longjon for the suggestion.
Net.caffeinate() and Net.decaffeinate() format/unformat lists
drop cute names in favor of Net.{pre,de}process() for input formatting

...and refer to inputs as inputs and not images since general vectors
and matrices are perfectly fine.
fwd/back math docs for neuron layers
Lil’ more docstring, and cosmetic change in EuclideanLossLayer
Cosmetic change in ConcatLayer
Incorporated Evan’s comments for neuron layers
Don't modify index in im2col kernel loop
Merge pull request #376 from sergeyk/layer_reorg

Layer definitions and declarations re-organization and documentation