Root finding

Reorganizes the files into folders, one of which is `root_finding`

`root_finding` contains automatic differentiation (adapted from the original by Nikolay Kryukov), which is used in the Newton and Krawczyk methods for 1D root finding.

Tests are currently missing for the root-finding routines.