ntoskrnl: implement NtApphelpCacheControl

Details

Description

This set of patches aims to implement NtApphelpCacheControl.
NtApphelpCacheControl is used by the apphelp layer to keep a list of (200) of the most recently launched applications in-memory for faster lookup.
Also included is a tool to test this function (with commandline switches, allows to query, dump, read, write and on ROS add).
Various tests are included, to match functionality to that of Windows 2003.
(In later windows versions the function is changed, most notably the structure passed to it).
Adding an application to the cache is restricted to r0 and services, but as of r68391 applications started in a livecd environment have sufficient rights.

At shutdown the list of applications is persisted to the registry, and at boot the persisted list is read back in.