Add type annotations to literally every function in the repo so we stop having random numpy arrays where there should be lists