Optimistic CC for HYRISE

Introduce transaction management to HYRISE. It
uses standard CID based optimistic concurrency control to keep track of
modifications. Currently transactions are only guaranteed for inserts and
concurrent inserts, but only if it's manually requested.

New Plan Operations:

  * ValidatePositions - takes the current TID / lastCommited ID from the Query
    and removes all positions from the input table that are invalid for the current query

  * Commits the current writes for the input table based on the current TID in the delta

  * MergeStore - merges the input store using the merger that is specified in the class
    and thus uses the validity information of the instance

  * PosUpdateScan - Updates the table by deleting and inserting

Other Changes:

  * Removed SeqHeapMergerRow

  * Rewrote SeqHeapMerger Dictionary Merge

  * Merger will now remove invalid rows

  * PrettyPrinter supports valid vector and cid for the store

  * Cleanup for slice*() - The old slice*() methods were removed and renamed to
    partitionCount() and partitionWidth() to retain their original meaning.
    The semantics changed so that partitionWidth() will return the width in
    attributes instead of bytes. The actual width of the attribute has to be
    checked via th attribute vector itself.

  * Store gets helper methods to validate positions and check and update commmit IDs

  * Removing LogarithmicMergeStrategy

  * Rewriting Merger and adding possibility to invalidate rows

  * Removing old SeqHeapMergerRow

  * Adding TX Context to Plan Operation

  * Adding Commit Plan Operation, Tests for concurrent inseerts

  * Moving TX Context and creating modification records for each table in the TX Manager

    * per new TID a new Mod Record is created

    * All modifying access to the mod record is protected by a spinlock

  * Adding Performance regression for tx speed
Merge pull request #127 from hyrise/feature/visbility

Optimistic CC and TX Manager