added Preferences interface and renamed in memory preferences to
MemoryPreferences (also repackaged)
removed Preferences class
added RingPreferences and finalized the structure of preferences
objects.
removed MemoryPreferences and now using more abstract Preferences
objects (could be either stored in memory, rings or anything else
implementing the Preferences interface)
added ring preferences to DataReader class and updated AbstractAlgorithm
to support them