SteelCore: An Extensible Concurrent Separation Logic for Effectful Dependently Typed Programs