Adding custom algorithm support in Luminol anomaly detection

This looks good. One question: do we have something similar to java interface for algorithms? for example, a base class or some documentation indicating the methods should be implemented? I think right now only __init__ and _set_score should be implemented