Numerical methods for wave propagation in solids containing faults and fluid-filled fractures