Reducing RAM consumption by deleting unused caches

When the user deletes a buffer, we can delete the clang caches for that file.
Fixes #184.
Adding the Boost Atomic and Lockfree libraries
Cache deletion is now async