How to limit and enable Commerce shipping options based on the customer's country?
The two crucial pieces of information:


The "Configure component" link alongside each shipping rate under admin/commerce/config/shipping (Store > Configuration > Shipping) is the place to set validation criteria for a shipping rate to appear as an option.
In these rules, countries need to be inputted as two-letter country codes not the full names.




In detail:


Set up the shipping rates and go to admin/commerce/config/shipping (Store > Configuration > Shipping)
For each one:


Follow the "Configure Component" link
"Add condition"
Commerce Order > Order Address Component Comparison
Address value = Shipping Address, Address Component = Country, and tick the Negate box at the very bottom if this is one for "everywhere but" (e.g. international rates)
Input the 2-letter country code under Value. You can see what this is by using Inspect Element on a country selector dropdown: