shims: correct list macros
shims: correct list macros

This adjusts the `LIST_ENTRY` to define the structure correctly.  This
allows for the `LIST_REMOVE` and `LIST_INSERT_HEAD` macros to be defined
properly and set the fields previous pointers as well when updating the
list.  This is needed to enable the use of the macros for list
manipulations.  Found while implementing file sources for Windows.

apple/swift-corelibs-libdispatch,apple/swift-corelibs-libdispatch,apple/swift-corelibs-libdispatch,apple/swift-corelibs-libdispatch