[SPARK-1292] Port Shark's In-Memory Columnar Representation to Spark SQL

This PR is rebased from the Catalyst repository, and contains the first version of Shark's in-memory columnar representation port for Spark SQL. Compression support is not included yet and will be added later in a separate PR.