Simplify Rep hierarchy

- Remove ColumnBase: Its Shape needs to be split into tableShape and
  mappedProjectionShape, all other uses can be changed to Rep.

- Simplify Shape implicits: Only two implicit resolution levels are
  still needed (instead of four): constColumnShape gets priority (over
  columnShape), all other Shape implicits are defined at the highest
  level.

- Move Shapes for (Const)Column, Query and AbstractTable into the
  companion objects of the respective classes. This improves compilation
  times by lowering the number of Shape implicits in scope (on my laptop
  “sbt clean test:compile” took 115s before this commit; with the other
  changes but not moving the implicits around, it goes up to 120s; with
  segregated implicits it is down to 107s)

- Make ShapedValue extend Rep and remove extra methods for ShapedValue
  from the BasicProfile implicits

- Remove columnBaseToInsertInvoker and shapedValueToInsertInvoker from
  the BasicProfile implicits. They were left over from the old table
  encoding in Slick 1.
Remove UnshapedQueryExecutor

recordToUnshapedQueryExecutor in BasicProfile was limited to types
M <: Rep[_], which makes the whole thing completely unnecessary because
those cases are already covered by repToQueryExecutor. This could be
easily fixed by removing the Rep restriction, thus allowing queries
such as "(xs.length, xs.length).run" to work.

However, considering that a) we don't have any test case for this, b)
nobody seems to be missing this functionality, c) there aren't many
useful queries of this form that would pass the current query compiler,
d) there's an easy workaround ("(xs.length, xs.length).shaped.run"), and
e) recordToQueryExecutor can be used on Scala 2.11+, let's just remove
UnshapedQueryExecutor entirely and make recordToQueryExecutor implicit
for use use on Scala 2.11.

New test for the workaround in ExecutorTest.testExecutor.
Fix the Shape for Query.

It was still hardcoded to use Seq as the type constructor. Due to the
lack of inference for higher-kinded types in Scala, we need a workaround
similar to the one for tableShape to make this work correctly.
Add some missing cases to Compilable/Executable

- Provide a Shape for ShapedValue (to make it Executable).

- Remove the Rep restriction from executableIsCompilable.

- Provide real instances for Executable (which used to be a phantom
  type for functional dependencies with null values) so that it can
  provide a toNode implementation for non-Rep Executables.

- Prevent WrappingQuery type from leaking out of UNION operations.

Tests in TemplateTest.testCompiled.
Merge pull request #832 from slick/tmp/remove-columnbase

Some DSL improvements