Introdude new Locks API, and the Forseti lock manager

 o The classic LockManager remains, but as an implementation of
   the new Locks API. It has been slightly improved to not contend
   on global data structures when taking locks it already holds.

   The classc lock manager is now referred to as the "Community
   Lock Manager".

 o Forseti is a new lock manager, available in enterprise only, it
   is faster than the community manager, and scales linearly as more
   execution threads are added. It uses a new deadlock detection
   scheme as well, which means deadlock detection is significantly
   faster and requires no pessimistic synchronization.
Fixed lock management introspection.
Fixed incorrect shared lock holder list resizing
Swapped last deadlock test to use new Locks API.
Extract test for all nodes scan, index seek, index scan and label scan out of SimpleLogicalPlannerTest
Revert "Bump scala version to 2.10.4 (patch release)"

This reverts commit 384f6e17f225c8b3248194b85149d8bbb9c134ba.

For some reason, Jenkins is trying to grab the jar from our Maven repository
rather than Sonatype.
Merge pull request #2136 from jakewins/2.1-locks

New Lock Manager
Merge pull request #2170 from davidegrohmann/ronja-planning-cleanups

Extract test for all nodes scan, index seek, index scan and label scan o...
Make sure to rewrite WITH as well as RETURN clauses
Merge pull request #2172 from systay/rewrite-with-clauses

Make sure to rewrite WITH as well as RETURN clauses
Introduce LogicalPlanningAcceptanceTest
Refactored CostModel to have a single method that computes cost for a given logical plan
Removed dependency from LogicalPlans on LogicalPlanningContext