Tidied up estimation code and fixed various bugs in the methods.
Now have a hierarchical class that enables different bandwidth computation methods.
TODO: add real tests to make sure this works, e.g. fixed bandwidth plus numerical check at the data points.