Add encoded_passwd fact

This PR adds a new passwd fact that uses the [Module:Etc](http://www.ruby-doc.org/stdlib-2.0/libdoc/etc/rdoc/Etc.html) in Ruby to run through /etc/passwd via the getpw APIs. 
An example would be the following `facter -p encoded_passwd |  python -mjson.tool`:
```json
{
    "adm": {
        "dir": "/var/adm",
        "gecos": "adm",
        "gid": 4,
        "name": "adm",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 3
    },
    "bin": {
        "dir": "/bin",
        "gecos": "bin",
        "gid": 1,
        "name": "bin",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 1
    },
    "daemon": {
        "dir": "/sbin",
        "gecos": "daemon",
        "gid": 2,
        "name": "daemon",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 2
    },
    "dbus": {
        "dir": "/",
        "gecos": "System message bus",
        "gid": 81,
        "name": "dbus",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 81
    },
    "ftp": {
        "dir": "/var/ftp",
        "gecos": "FTP User",
        "gid": 50,
        "name": "ftp",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 14
    },
    "games": {
        "dir": "/usr/games",
        "gecos": "games",
        "gid": 100,
        "name": "games",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 12
    },
    "gopher": {
        "dir": "/var/gopher",
        "gecos": "gopher",
        "gid": 30,
        "name": "gopher",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 13
    },
    "halt": {
        "dir": "/sbin",
        "gecos": "halt",
        "gid": 0,
        "name": "halt",
        "passwd": "x",
        "shell": "/sbin/halt",
        "uid": 7
    },
    "lp": {
        "dir": "/var/spool/lpd",
        "gecos": "lp",
        "gid": 7,
        "name": "lp",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 4
    },
    "mail": {
        "dir": "/var/spool/mail",
        "gecos": "mail",
        "gid": 12,
        "name": "mail",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 8
    },
    "nfsnobody": {
        "dir": "/var/lib/nfs",
        "gecos": "Anonymous NFS User",
        "gid": 65534,
        "name": "nfsnobody",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 65534
    },
    "nobody": {
        "dir": "/",
        "gecos": "Nobody",
        "gid": 99,
        "name": "nobody",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 99
    },
    "nscd": {
        "dir": "/",
        "gecos": "NSCD Daemon",
        "gid": 28,
        "name": "nscd",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 28
    },
    "nslcd": {
        "dir": "/",
        "gecos": "LDAP Client User",
        "gid": 55,
        "name": "nslcd",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 65
    },
    "ntp": {
        "dir": "/etc/ntp",
        "gecos": "",
        "gid": 38,
        "name": "ntp",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 38
    },
    "operator": {
        "dir": "/root",
        "gecos": "operator",
        "gid": 0,
        "name": "operator",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 11
    },
    "pe-activemq": {
        "dir": "/opt/puppet//var/lib/activemq",
        "gecos": "Apache Activemq",
        "gid": 494,
        "name": "pe-activemq",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 493
    },
    "pe-apache": {
        "dir": "/opt/puppet/var/www",
        "gecos": "Puppet Enterprise Apache",
        "gid": 497,
        "name": "pe-apache",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 496
    },
    "pe-auth": {
        "dir": "/opt/puppet/share/console-auth",
        "gecos": "Puppet Console Auth User",
        "gid": 495,
        "name": "pe-auth",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 494
    },
    "pe-memcached": {
        "dir": "/var/run/pe-memcached",
        "gecos": "Memcached daemon",
        "gid": 499,
        "name": "pe-memcached",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 498
    },
    "pe-postgres": {
        "dir": "/opt/puppet/var/lib/pgsql",
        "gecos": "Puppet Enterprise PostgreSQL Server",
        "gid": 493,
        "name": "pe-postgres",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 492
    },
    "pe-puppet": {
        "dir": "/var/opt/lib/pe-puppet",
        "gecos": "Enterprise Distribution Puppet",
        "gid": 498,
        "name": "pe-puppet",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 497
    },
    "pe-puppetdb": {
        "dir": "/opt/puppet/share/puppetdb",
        "gecos": "PuppetDB daemon",
        "gid": 492,
        "name": "pe-puppetdb",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 491
    },
    "peadmin": {
        "dir": "/var/lib/peadmin",
        "gecos": "peadmin",
        "gid": 500,
        "name": "peadmin",
        "passwd": "x",
        "shell": "/bin/bash",
        "uid": 500
    },
    "postfix": {
        "dir": "/var/spool/postfix",
        "gecos": "",
        "gid": 89,
        "name": "postfix",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 89
    },
    "puppet-dashboard": {
        "dir": "/opt/puppet/share/puppet-dashboard",
        "gecos": "puppet-dashboard",
        "gid": 496,
        "name": "puppet-dashboard",
        "passwd": "x",
        "shell": "/bin/bash",
        "uid": 495
    },
    "root": {
        "dir": "/root",
        "gecos": "root",
        "gid": 0,
        "name": "root",
        "passwd": "x",
        "shell": "/bin/bash",
        "uid": 0
    },
    "rpc": {
        "dir": "/var/cache/rpcbind",
        "gecos": "Rpcbind Daemon",
        "gid": 32,
        "name": "rpc",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 32
    },
    "rpcuser": {
        "dir": "/var/lib/nfs",
        "gecos": "RPC Service User",
        "gid": 29,
        "name": "rpcuser",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 29
    },
    "saslauth": {
        "dir": "/var/empty/saslauth",
        "gecos": "\"Saslauthd user\"",
        "gid": 76,
        "name": "saslauth",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 499
    },
    "shutdown": {
        "dir": "/sbin",
        "gecos": "shutdown",
        "gid": 0,
        "name": "shutdown",
        "passwd": "x",
        "shell": "/sbin/shutdown",
        "uid": 6
    },
    "sshd": {
        "dir": "/var/empty/sshd",
        "gecos": "Privilege-separated SSH",
        "gid": 74,
        "name": "sshd",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 74
    },
    "sync": {
        "dir": "/sbin",
        "gecos": "sync",
        "gid": 0,
        "name": "sync",
        "passwd": "x",
        "shell": "/bin/sync",
        "uid": 5
    },
    "tcpdump": {
        "dir": "/",
        "gecos": "",
        "gid": 72,
        "name": "tcpdump",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 72
    },
    "uucp": {
        "dir": "/var/spool/uucp",
        "gecos": "uucp",
        "gid": 14,
        "name": "uucp",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 10
    },
    "vcsa": {
        "dir": "/dev",
        "gecos": "virtual console memory owner",
        "gid": 69,
        "name": "vcsa",
        "passwd": "x",
        "shell": "/sbin/nologin",
        "uid": 69
    }
}
```