The financial engineering of forwards, futures, swaps, and options, with Python tools for fixed income and options