Remove Block Creation from linop.

Will be moved to a different file later.
Add ensure2dColumn decorator.

The ensure2dColumn decorator takes a function defined in the following
format

  def func(op_shape, x)

and ensures that x is at least 2D, converting 1D arrays to 2D column
arrays if required. Additionally, 2D results from the computation of
func that are only a single column are converted into 1D arrays.
This respects func's input, as defined by the Numpy code guidelines.
Install requirements now include SciPy.

Used in the operators subpackage, and will likely be used elsewhere due
to the sparse package being inside scipy.
@ensure2dColumn works only on dense inputs only.

The squeeze and reshape operations do not make sense on sparse matrices,
as it alters their internal data structure significantly.
Updated setup.py test function.

Follows what is on the py.test webpage now.
Replace assert_almost_equal with assert_allclose in linop_test.

The assert_almost_equal gave erroneous results infrequently.
Replaced adjointTest assert_approx_equal with assert_allclose.

assert_approx_equal is being deprecated.
Add zeros, ones, eye operators.

Includes relevant __init__ and setup.py changes.
Added tests for zeros, ones, eye operators.

Testing for both the functionality matching the equivalent matrices, as
well as passing the adjoint test.
Add select operator.

Selects out rows from a matrix.
Add select operator test.

Only the adjoint, there is not an equivalent matrix function to match
this against.
LinearOperator now checks for positive integer shape tuple.

If the tuple contains non-positive (including zero) or improper shape
element types then the init function throws a hissy, ValueError fit.
Tests for check on positive, integer shape tuple to LinearOperator.
Comment headers in tests/linop_test.py
LinearOperators forward/adjoint takes in 1 input instead of 2.

THIS IS A MAJOR CHANGE! Much of the code was touched in order to make
this result possible. Here is a rundown.

- ensure2dColumn operates on functions of one inputs.
- toLinearOperator and toScipyLinearOperator corrected.
- All composition rules in linop.py
- Call syntax in linop.py
- Operators defined in pyop.operators

To make the operators work, often the ensure2dColumn decorator had to
be used in its inline form.
Add diag operator.
Add diag operator tests.

They pass!
Removed scipy.sparse import in matrix_operators
Removed useless lambda in toLinearOperator.

Took a pylint suggestion. Just a code style cleanup.
Add ensure2dColumn test.

Tests for the expansion and the flattening by printing to standard
output.