Will one pic programmer program all pic chips?
Unfortunately, there is no single programmer that will program all PICs.

If you go to the in the installation directory for MPLABX (on my machine it is "C:\Program Files (x86)\Microchip\MPLABX\docs"), there should be a file called DeviceSupport.htm.  It lists all of the PICs supported by each debugger, along with the associated compilers too.  Here is the beginning of it:



Most devices are supported by the PICkit3 and ICD 3.

You can also get the same information for a single PIC by opening up the Project Properties dialog in MPLABX and selecting a part number.  In the middle of the dialog, it will show which debuggers are supported.  For example, for the 32-bit PIC32MX795F512L, all the debuggers are supported except for PICkit2 (an older device) with a red dot next to the name.