implemented transient cache for Squad.opponents(); set cache to store calculations by passed parameters; added div-by-0 error handling on Squad.win_pct()