Handle empty array in the subscript operator

Addresses #2133 
I also hit other problems even if I return ``null``. Any ideas about how to fix these?

```
java.lang.NullPointerException
	at com.facebook.presto.$gen.PageProcessor_173.project_0(Unknown Source)
	at com.facebook.presto.$gen.PageProcessor_173.process(Unknown Source)
	at com.facebook.presto.operator.FilterAndProjectOperator.getOutput(FilterAndProjectOperator.java:98)
	at com.facebook.presto.operator.scalar.FunctionAssertions.getAtMostOnePage(FunctionAssertions.java:594)
	at com.facebook.presto.operator.scalar.FunctionAssertions.selectSingleValue(FunctionAssertions.java:311)
	at com.facebook.presto.operator.scalar.FunctionAssertions.selectSingleValue(FunctionAssertions.java:298)
	at com.facebook.presto.operator.scalar.FunctionAssertions.executeProjectionWithAll(FunctionAssertions.java:266)
	at com.facebook.presto.operator.scalar.FunctionAssertions.selectUniqueValue(FunctionAssertions.java:237)
	at com.facebook.presto.operator.scalar.FunctionAssertions.selectSingleValue(FunctionAssertions.java:232)
	at com.facebook.presto.operator.scalar.FunctionAssertions.assertFunction(FunctionAssertions.java:201)
	at com.facebook.presto.type.TestArrayOperators.assertFunction(TestArrayOperators.java:51)
	at com.facebook.presto.type.TestArrayOperators.testSubscript(TestArrayOperators.java:234)
```