Refactor fingerprinting into a Fingerprint module

Default is the fingerprint that will be used for a new
installation. Legacy is for people who need a reverse
compatible version