Added specialised slicing method

The specialised method checks if the array has already been allocated.
Memory is not reallocated if it does.
Modified array slicing

Added new slicing methods to check allocated memory
Modified arraySliceSpec for the indices

Added a new method for memory checking
Modified IndexExprCodeGen

Added a new parameter for the LHSExpr. Default value set to NULL
Modified IndexExprCodeGen

Modified slice generators to generate specialised slice method