Destinations are in the files io.go (for the transport protocols) and encoder.go (for the map->string encoding). It's not terribly well documented, but you basically need to just create an io.ReadWriteCloser and a dendrite.Encoder, which is an interface for the single method: Encode(out map[string]Column, writer io.Writer).
You guys look like you might be similar to librato (json over http, with possible batching). I have a pull request for librato that you could cargo-cult:
https://github.com/onemorecloud/dendrite/pull/21/files
I haven't really thought much about making dendrite-core as a library. What are the use cases?