Add invalidateCaches to the TimeTree api and throw a NotFoundException when the single root has been deleted by another process