Make process_select by priority work on FreeBSD.

  Ref: http://lkc.me/5P

Wanted something like and (auto-nice daemon), but would also operate on processes owned by root.  So, tried to have a CFEngine policy, additional had it make some things even nicer by moving them into the idle priority class.  Which meant looking at PRI, since NI isn't meaningful for processes above or below the normal user range.

IE: the processes's NI value stayed the same after it is moved into the idle priority class, so the promise to move matching processes into the idle priority class would never converge.  Opted to not expose and parse the rtprio field from ps....  but rather have process_priority() work on PRI.
Yes, I had gleaned from the source that it looks for `NI` first, if not found, then it uses `PRI`.  

Ideally, the `priority` attribute should always correspond to PRI, and there be a different attribute (perhaps `nice`) that corresponds to NI.

When a process is moved into realtime or idle priority ranges, the nice value retains its previous value, there's a separate rtprio field available...

*top* knows about this and adjusts what it displays in its NICE column, *ps* doesn't....adding `rtprio` to the format line outputs the information, but its not straight forward for parsing.... outside of `normal`, its strings like `idle:255`, `intr:28`, `real:56`...  subtract 100 from the number gives what `PRI` will show for these.

Since my goal is demote processes into the idletime process scheduling.  idprio is a value in the range 0,31, which maps internally to 224,255 (the value after 'idle:'), while under the PRI column to the range 124,155.

Thought I had posted somewhere about the map, but this is what I put in my library file of process_select bodies....

    # FreeBSD
    # -------
    # process priorities are 0-255 (but ps subtracts 100)
    #
    # Interrupt Threads     =   0 to  47 = -100 to -53
    # Real-Time Threads     =  48 to  79 =  -52 to -21
    # top half kern threads =  80 to 119 =  -20 to  19
    # normal user threads   = 120 to 223 =   20 to 123
    # idle prio threads     = 224 to 255 =  124 to 155
    #
    # nice is just a hint....threads set to idle class can have any value for NI, including 0
    # rtprio field would be nice, but don't feel like teaching CFEngine how to parse it.
    # So, I hacked ps call to only get pri (it seems to try ni then pri when looking)
    # 
    # linux is different
    # nice 0 is 19...max nice is 0, very unnice of -20 is 39.
    # 40+ is kernel/realtime stuff...no idle class
    # cfengine goes by NI

Don't see much need to moving linux(or any) processes into realtime, so Linux behavior can remain unchanged.  Haven't looked at Solaris, because we're still running CFEngine 2.2.9 to manage those... had heard that we were going to cease all things Solaris by end of last year...but so far nothing has gone away, and some new systems have snuck in.  But, when they cease to exist, so will our continued use of CFEngine 2.2.9 (plus policyserver is Solaris.)