Changed .gitignore. Ignore .gdb script
One more round of development on btree.

- replaced fmt.* calls with log.* calls
- added Debug flag in configuration structure and moved log messages under
  the debug flag.
- long outstanding reads can block snapshots being flushed and prevent stales
  nodes from reclaimed. In such case, that is, when a read is blocking
  mutations more than 2x DrainRate, mutations are throttled.
- added an API ncacheEvict() that complements ncache() API.
- added debug functions assertNotMemberCache() and assertNotMember()
  to catch MVCC bugs early on. These functions are called only when debug flag
  is enabled.
- MV.commits field is changed to map[int64]Node from []Node.
- rebuilt MVCC to be simpler, with scope for optimization.
- previously every goroutine had a response channel to communicate back,
  replacing it with idiomatic go.
- btree.Stat() interface method now accepts a boolean argument that can
  optionally check for btree structure sanity.
- btree.Check() interface method also checks for circular loops in btree.
- updated test cases.

Bug Fix:

- minAccess() logic had a bug in moving the accessQ window.
- time.Now().UnixNano() will be unique for every call ? surprise, surprise !
  now using sequence number instead of timestamps.
- ping2pong() should happen under cache write-lock - nasty mistake.
- one of the reason for rebuilding MVCC is because of a bug caught by
  Deepkaran's level-bench program.