Can someone explain the pupose of a snapshot. And why does it always come together with an update?
A snapshot is done to prevent the Tangle (DAG) from expanding too much in size. Snapshotting saves all the balances, while removing the history and data of all the transactions to start fresh. These addresses with balances act like a new genesis address, but no previous history or data will be attached. The image below shows some tips of the tangle in grey, which demonstrates the "new" genesis addresses on the tangle right after a snapshot.
In order to do an update, the nodes need to temporarily stop accepting new transactions and update to the new server data. This is why you must snapshot, they must agree on a consensus "beginning state" of all addresses to start from.
There is no requirement to do a protocol update when a snapshot is done, but it's a good opportunity to do it.
Remember that the tangle is still young and protocol updates are required. In the future, once tangle will be mature, I expect that snapshot will be done with no protocol update at the same time.