Refactoring multi-platform .travis.yml

Iam just a user, so this is no official statement.

for the cpp language support see: C++ Support on Windows
I expect at some point all languages supported in Linux/macOS will also be supported in windows.

For the other things. Personally I think this looks still ok. If it would be more complex I would recommend to extract it into own scripts, which then handle the if windows part.
And it seems your current approach is, what the community is using usually to solve this kind of problems. https://gist.github.com/jamesarosen/e29076bd81a099f0f72e

My question would be, why do you split by os and not by make vs cmake I understand you probably still want to test with make on linux, but you can also use cmake on linux if I did read up correctly.