plist: add PLIST_HEAD and plist_for_each_entry_continue

Add PLIST_HEAD(), equivalent to LIST_HEAD(), to define and initialize
a struct plist_head.

Add plist_for_each_entry_continue(), equivalent to
list_for_each_entry_continue(), to iterate over a plist continuing
after the current position.

Signed-off-by: Dan Streetman <ddstreet@ieee.org>
plist: add plist_rotate

Add plist_rotate(), which moves the specified plist_node after
all other same-priority plist_nodes in the list.

This is needed by swap, which has a plist of swap_info_structs
and needs to use each same-priority swap_info_struct equally.

Signed-off-by: Dan Streetman <ddstreet@ieee.org>
tmp final commit