add optional whitelisting of fingerprints for connecting

btw, i wasn't able to quite figure out what you meant by factoring out reading the whitelist file into an io interface -> array func.. i'd still have to error out if the file was missing, so i'm not sure it would save that much code or make it look any prettier.. i could be wrong, though? if you want it and could provide guidance/example i'd be happy to add it
i have to check this at least somewhere though. if there's no whitelist file specified then every new connection will fail the IsWhitelisted check, no?