Fixed several math errors in `amm.py`, `repeg.py`, `oracles.py`
Fixed bug where `DriftUser.get_free_collateral()` would always return 0
Added equivalent math in `funding.py` to match TypeScript SDK
Removed `sub_account_id` field from `DriftUser`
Changed `UserMap` to assign slots from the `getProgramAccounts` RPC call
Updated `constants/perp_markets.py` with new perp market listings