convert DAGService to an interface

Here is DAGService  conversion, leaving the spiltter as-is.

Looking at BlockService, it would makes sense to interface that too, but for me at this point I'd rather have a RPC backed DAGService because its a much more naive way to add objects.

I would perhaps like to run multiple BlockExchange nodes on the same datastore, so that I might publish objects to different networks without exposing the relationship between my different addresses.
There is alot more that goes into that, but its something I've been thinking about.


@whyrusleeping i've seen a lot of the go stdlib do it too. I think it's because you might have nil structs that still work. e.g. http://play.golang.org/p/zLaycf4H-E (this isn't best example because that's not a ptr, but *shrug*).

Not sure what's good idiomatic practice. thoughts @cryptix ?