scalar value blocks handled correctly in contraction and tensor expressions.

Most places in the a sial program, a scalar valued block, e.g. a[i,j] where i and j
are simple indices, is treated as any other scalar value.  This is not the case for
contractions and tensor expressions (^) where the indices still matter.  The bulk of
this correction was in the compiler.  This update implements the block_scale_assign
opcode and adds a test for scalar blocks in contractions and tensors.
added .cproject to .gitignore