queries for the cuda device max grid dimension and uses it in setting the block dimension in init_griadient_block2.
new sparse format where we send a bitmask of the indices of the vector to the cuda device
re-enable the LIBSVM sparse vector format with USE_LIBSVM_SPARSE_FORMAT