Using flags to enable large pieces of functionality makes me cringe...can we actually keep the call to NewSession as it was and just wrap the returned object it if agentForwarding==true? It might look like this:

```
session, err := client.NewSession()
if err != nil {
  return err
}

if agentForwarding {
  if err := forwardAgent(session); err != nil {
    return err
  }
}
```