use runtime.Caller to decipher template dir

msgp fails when GOPATH has multiple entries

A better way to grab the base path of the tmpl files is to start from the path of the current go file. runtime.Caller exposes this.

Fixes #36