lwork returned from a workspace query has the same dtype as the principal matrix, but when we call the computational routine it expects an integer value. This also fixes a potential bug in schur(), where lwork keyword was ignored. Thanks to Fabian Pedregosa.
REF: Split basic.py and decomp.py into multiple modules. Removed duplicated versions of the functions cho_solve and lu_solve. Return value of solveh_banded no longer includes the Choleskey factor (ticket #676). ENH: Added cho_solve_banded. STY: Clean up python style in many places.