IP address to use with FCI, Always On AG and Always On (AG) FCI
For Failover Clustering: ... Am I right to assume that the clients should use the above cluster IP address to access SQL server?And that the Cluster IP address will decide where to direct the request to?


When dealing with a SQL Server FCI, you'll want to use the virtual name provided in the SQL Server setup as the point of connectivity. Do not use the "Cluster Name" as that points to the node owning the cluster resources and not necessarily the SQL Server resource group.


  Always on Availability groups: ... We configure the Listener and give it a DNS/IP address.


Correct, you use the listener.


  So what is the purpose of having the cluster DNS/IP address also?


This is the administrative endpoint for the cluster. You'd use this to deal with cluster settings, since you're just looking at SQL Server there are high chances you'll never actually use it. It doesn't mean it isn't used, just you aren't actively using it with SQL Server as a client.


  Combine the above (FCI + AG): ... Here also I assume that client apps should be connecting to the listener IP address and not the cluster IP address?


Correct.