1) I've read that a segwit transaction cannot spend non-segwit utxos. Is this correct? How can you then create your first segwit transaction, if you only have non-segwit utxos? I am sure I am missing something there.
You send your coins back to yourself. So you will spend your non-segwit utxos and create segwit utxos, all of which you control.
2) Is the new segwit serialization format really backwards compatible? I have been looking at it and I am pretty sure that wallets that do not understand segwit will not be able to recognize a segwit transaction,
Yes, it is. It is because of the way they are requested and sent. Transactions are only sent with the witness serialization if that is what was requested. They must use MSG_WITNESS_TX and MST_WITNESS_BLOCK to get transactions in segwit format. Old nodes use MSG_TX and MSG_BLOCK so they receive the non-segwit format.
and thus, they might think that the block is invalid for including non-standard transactions?
Blocks that contain non-standard transactions are not invalid. Non-standardness does not mean that the transaction is invalid
3) I also read that there will now be two ways of identifying transactions, the txid (which is the hash of the transaction serialized the old way) and the wtxid (the hash of the transaction serialized as segwit). When signing the transactions, do you also use the old serialization to calculate the hash you need to sign? or do you serialize it as segwit? (in which case, again, old wallets would not be able to verify the signature).
Serializing transactions to be signed is different from network serialization. Segwit will also change this serialization too but for segit utxos only. Old nodes cannot validate segwit transactions anyways since they won't even receive the signatures.
The txid and wtxid are unrelated to sighash serialization. Txid will still be the identifier, wtxid is only used for the witness commitment.
4) If the txid included in the merkle tree is not the wtxid, then, how can you tell if a transaction is segwit or not when it is presented to you using the old serialization?
You look at the input scriptsig and the utxo being spent. Segwit utxos have a specific format, and if the utxo has the same format pattern as segwit, then it is considered a segwit utxo and must be spent as one.