major refactor. store metrics as their own objects. process state determination and transitions as in route.services.metrics()
add checktypes and checks. move serviceType definitions into serviceType modules
add support for graphiteQuery checks and code refactor