(PUP-2866) Read UID_MIN from login.defs instead of hardcoding value.

This change reads UID_MIN from /etc/login.defs, if present, for the
minimum non-system user id instead of simply hardcoding a value.  If the
file isn't present or UID_MIN isn't specified, we fall back to 1000 for
BSD family operating systems and 500 for all other operating systems.
I get a bit uneasy when we call instance_variable_set but you're right; I would rather we avoid this but it won't hurt much. Your call on this.