D2k: Sandworms implementation

Using Mailaender's code as basis, this is my implementation of the sandworm behavior. It is still WIP, but you can get an idea of how it looks from the shellmap.
This is called a lot, so should be cached in the constructor.  You'll also need to wrap it in a `Lazy` to make sure that the trait dependencies are resolved properly.