In the normal case of x_min, x_max = None, this will force a rebuild every time.  In fact, I'm not sure that we even want to have x_min,x_max parameters here when the only option is to read a LookupTable from a file.  It seems like you'll pretty much always want to use the full range defined in the file, rather than restrict it.  

However, it might be worth enabling a function to be specified in config.  See how we did this for PowerSpectrum's e_power_function and b_power_function.  Basically, you let the function be a string that gets evaluated as the definition of a python lambda function: `if isinstance(function,str): function = eval('lambda x : ' + function)`.  Then people can easily specify an arbitrary function for a DistDeviate in the config file.

Regardless, for this line, an easier way to do this check is to store `base['distdev_kwargs'] = kwargs` and then check `if base['distdev_kwargs'] == kwargs:` to see if you need to rebuild it.