Create language services per-project

* loading for the entire workspace is kinda weird
* the delta listener actually wasn't necessary (it was wrong in fact)