Add persistent state to FrequencyDomain. It stores FFT results from initialization for future reuse. Make class methods into instance methods to take advantage of stored state: FFT results, sample rate.
Modify harmonic_series method a bit.
Add frequency_domain method to Signal, which causes a new FrequencyDomain object to be created and stored for future reuse with FD-related calls.