New sparse gradient is returned, ADDSD is optimized in place, we have to write a flag to turn on optimization in case of updates
index the sparse matrices according to their format instead of converting them to coo, add a flag for inplace operation
first c code running in place addition
speed up sparse construct op by 9x
Merge branch 'master' of https://github.com/Theano/Theano into grad_advinc_subtensor
enable local inplace optimization and only works for the python version
C code now supports csr formats and no-in-place operations
Merge branch 'master' into grad_advinc_subtensor
Merge branch 'master' into grad_advinc_subtensor
Added comments to the code to document understanding of Gradient of Subtensor patch
Merge branch 'master' into grad_advinc_subtensor
Merging from LatestTheano
Merge branch 'trunk' into TheanoBugFix
Fixed indentation in opt.py
Merge remote-tracking branch 'vivek/TheanoBugFix' into grad_advinc_subtensor
importing ssparse in constructor
Merge pull request #2 from viveksck/TheanoBugFix

Importing Scipy sparse in the ContructSparse Op to avoid unnecessary Scipy dependency.
Taken care of code review comments partially
Taken care of all comments
Tensor Type has now a sparse grad attribute which can be set or unset to determine if sparse gradient is to be enabled or not. Note if needed, we can provide getters and setters to set the attributes to provide more clean interfaces to application. Right now application can access this attribute and set it before calculating gradient