An Algorithm For Fully Resolved Simulation Of Self-Propulsion Through Fluid And An Analysis Of The Hydrodynamics Of Ribbon-Fin Propulsion