KLIFF: A framework to develop analytic and machine learning interatomic potentials