1. Sent by company to work in another country with a full package: expat
2. Decided to work in another country doing white collar skilled or semi-skilled labor without a package but with no intention of (or ability to) staying: half pat
3. Poorer version of 2 doing less skilled or unskilled labor: migrant worker (not a lot of difference, actually)
4. Working in a foreign country on an actual visa that leads to at least permanent residency: immigrant
Note that China (where I was) doesn't really allow for 4, but there are definitely people who move there with the intention of staying (though their chance of ever getting a green card is very slim if they are not Han or a famous basketball star). I was in the 2 bucket, had a few lucky friends in the 1 bucket. The 3rd bucket was handled by migrant workers from out of province/city (so not technically migrant workers like we have in the states, but without residency via the hukou system they are exploited roughly the same).
Incidentally, the engineers China sends to Africa and south east Asia and other countries are definitely expats (though their packages aren't that big), the workers they send to do construction in the same areas are more like migrant workers. So it is not just a distinction made for westerners.
So usually you are both.
The true concept for immigration would be emigrant (emigres) but this doesn't seem to have popular English usage nowadays.