Merge pull request #2256 from 9rnsr/fix_imports

Fix issue 313 & 314 implement more strict import mechanism
[Refactoring] ArrayScopeSymbol::search
[Refactoring] Operator overload handling in AssignExp

Change to recursive call for later fallback mechanism.
[Refactoring] More better error propagation from resolveOpDollar
Add IntervalExp and fix parser, and disabled test for issue 6789

All of N-dimensional array operations are now translated to ArrayExp.
But currently they are immediately translated to SliceExp, so have no effect.
Translate IntervalExp in ArrayExp::arguments to opSlice!dim(lwr, upr)
Support multi-dimensional opIndex

If it fails, fall back to opSlice for backward compatibility.
Support multi-dimensional opIndexAssign

If it fails, fall back to opSliceAssign for backward compatibility.
Support multi-dimensional opIndexUnary

If it fails, fall back to opSliceUnary for backward compatibility.
Support multi-dimensional opIndexOpAssign

If it fails, fall back to opSliceOpAssign for backward compatibility.
Unmask all test for issue 6798