check for duplicated stack addresses by JimLee168

Based on https://code.google.com/p/jpcsp/source/detail?r=3569

Fix WWE SmackDown! vs. RAW 2006,2007,2008 booting
Fix #6671

2006 Modify log: https://gist.github.com/sum2012/a74a7199dcb3058fa5d8
You'll need to rename DisplayListOld to DisplayList_v1 maybe, and create a DisplayList_v2.

You still need to load old (v1) savestates, so it's good to leave the `else` there and set `stackAddr = 0` as you did.  But also, add a new section for `} else if (s >= 2) {`.  It will look almost like the `else` for v1, except use v2 and copy over everything and 0 out stackAddr.

So it will be like this:
```c++
	...
} else if (s >= 2) {
	for (size_t i = 0; i < ARRAY_SIZE(dls); ++i) {
		DisplayList_v2 oldDL;
		p.Do(oldDL);
		// Copy over everything except the last, new member (stackAddr.)
		memcpy(&dls[i], &oldDL, sizeof(DisplayList_v2));
		dls[i].stackAddr = 0;
	}
} else {
	...
```

This will convert the v2 struct to the latest struct.

-[Unknown]