Use try_push and not push to avoid blocking
Switch index implementation to mutex-based

tbb::concurrent_hash_map seems to leak memory, although
it's probably me not using it correctly.

For now, we switch to a potentially slower implementation until
we investigate tbb or some other lock-free hash maps such as
facebook's folly.