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.