simple locking for safer link map writing

this is sub optimal lock usage by a lot, but

* the `RLock` means you can safely wrap all your LinkMap methods with `synchronized`
* consequently you can kind of blindly switch to `sqlite`