Make links immutable

Color and value are still mutable but retrieve method should not mind
it. Color is for rebalance (so insert/delete use it but retrieve
doesn't) and value assignment is Thread-safe in Ruby.

Write performance should drop but not yet measured.
Add multi-threaded test

With current version this test fails with 'should not happen'
exception in rebalance or stack over flow from endless recursive call.
added height accessor
Update Travis-CI build matrix
Test for AVLTree#height
Add explicit license files for licenses mentioned in README
Replace giant writer lock with CAS

First, this commit makes nodes completely immutable (color and value,
too.) for concurrent writer execution.  Then protect @root in
insert/delete with CAS.  Now this gem depends 'atomic' gem.
Add multi-thread benchmark

 * 2 Threads for insert
 * 2 Threads for delete
 * 2 Threads for read
Variable assignment refactoring
Abstract tree operation

Introduce LEFT and RIGHT that fullfills ~LEFT == RIGHT and ~RIGHT ==
LEFT then abstract tree operations by specifying operation direction as
a method argument.

It introduced 10% runtime performance drop of insert/delete but it's a
good deal for maintenanceability.
Change the name for co-existing with the old one

New name is ConcurrentRedBlackTree. Keep the name RedBlackTree as the
thread unsafe version.
Name refactoring for readability

link -> child, links -> children
Merge pull request #6 from nahi/topic_link_immutable

Add ConcurrentRedBlackTree, thread-safe insert/delete/read based on link immutability and CAS