Initial support for Hive 0.11

Changelog (merged with yaoshengzhe's changes & comments -- thanks Shengzhe!):

src/main/scala/shark/SharkCliDriver.scala
   CliDriver.getCommandCompletor() now returns command completor array not single value. Add all these completor to reader.

src/main/scala/shark/execution/CommonJoinOperator.scala
   Hive Api change:
       1) JoinUtil.getObjectInspectorsFromEvaluators now returns List<ObjectInspector>[] instead of Map<Byte, List<ObjectInspector>>.
       2) Both JoinUtil.getObjectInspectorsFromEvaluators and JoinUtil.getStandardObjectInspectors need fourth parameter: tagLen

src/main/scala/shark/execution/JoinOperator.scala
   Due to JoinUtil methods change, update corresponding code

src/main/scala/shark/execution/MapJoinOperator.scala
   Due to JoinUtil methods change, update corresponding code

src/main/scala/shark/execution/ScriptOperatorHelper.scala
   Add override for overridden methods.
   Shengzhe also moved two methods to a new companion object, not included here - feel free to commit that separately.

src/main/scala/shark/execution/SharkExplainTask.scala
   ExplainWork class constructor changed, add default values to new parameters.

src/main/scala/shark/SharkOptimizer.scala
    Override Hive's optimizer to skip SimpleFetchOptimizer and avoid ListSink operator (used
      by Hive to avoid MR jobs for simple queries)

src/main/scala/shark/execution/TableScanOperator.scala
   Explicit call static method using HiveInputFormat.pushFilters instead of pushFilters
   HiveInputFormat api change, init(ParseContext) => initParseCtx(ParseContext).
   QBParseInfo api change, isInsertIntoTable(String table) => isInsertIntoTable(String dbName, String table)

src/main/scala/shark/parse/SharkSemanticAnalyzer.scala
    Name of init method changed to initParseCtx
    Both db and table names are now required
    Call SharkOptimizer to avoid ListSink optimization