Replace Wellington with pure C implementation

This yields a roughly 4x speed increase - not too amazing but nothing
to turn your nose up at