metalminer: core rewrite

Added dependency to async
Has better code reuse
Simplified creating new functionality