Add test for outer joins and fix capability declarations.

We also support it directly in QueryInterpreter for MemoryDriver. The
test reveals that the drivers for Access, Derby, H2 and MySQL declared
the (already existing) joinFull capability but do not actually support
full outer joins.

Test in JoinTest.testJoin. Fixes issue #466.
Emulate outer joins where necessary.

- Add a new EmulateOuterJoins phase with the right settings. This is
  done automatically in RelationalProfile based on the capabilities
  declared by the driver.

- The joinLeft (new), joinRight and joinFull capabilities are repurposed
  to indicate *native* join support. Unit tests now ignore them and run
  all join tests on all drivers.

- Add phase benchmark logging to QueryCompiler.

Fixes issue #559.
First cut at OSGi-fun for slick.

* Add sbt-osgi plugin
* Create really really stupid defaults for slick OSGi bundle
* Create new project to run slick OSGi tests
  - We have to fork for who knows why
  - We pass bundles to load via a system property (may be windows unfriendly)
* Create the most basic of basic tests, just to ensure we load/link things in the OSGi world.
Add def size as alias for length to Query
for more Scala collections api conformity
Improve OSGi integration:

- Turn down logging for the container and the service log. The actual
  test logs are unaffected.

- Remove osgiTest project from root aggregation. It is not published
  and tests are not run by default. They are still run as part of
  testAll.

- Add H2 driver to OSGi test and run an actual database test.

- Rearrange package structure.
Merge pull request #748 from slick/tmp/sizeAlias

Add def size as alias for length to Query
Clean up dependencies
Merge pull request #732 from slick/tmp/full-outer-joins

Emulate outer joins
Remove IntrinsicSymbol

- Encode fields in raw tables as Select(tableNode, field) instead of
  Select(Ref(IntrinsicSymbol(tableNode)), field).

- Simplify WrappedQuery. Encoding a new path starting at the wrapped
  Node's IntrinsicSymbol was unnecessary.

- In DistributedDriver, use RefId (resurrected from Slick 1.0) to create
  unique identifiers for TableNodes.

- Remove the "inline" phase. It is no longer necessary.

- Remove orphan node logic from Dump. Trees really are trees now, not
  just forests.
Merge pull request #740 from slick/tmp/remove-intrinsicsymbol

Remove IntrinsicSymbol
Merge pull request #752 from slick/tmp/osgi

OSGi support
Improve scaladoc comments and clean up API for Slick 2.1.

- Lots of new and improved doc comments.

- Deprecate Query.where and restrict Query.filter and Query.filterNot
  to only accept Columns. Desugaring of for-comprehensions will always
  generate calls to withFilter which still allows plain Booleans.
Deprecate more operators:

- Deprecate "is" and "isNot" operators for possible reuse in a later
  version. Fixes #751.

- Implement "isDefined", "isEmpty" and "nonEmpty" for Column[Option[_]],
  deprecating "isNull" and "isNotNull" (see #750).