Add reflection based option parameters

Allow New(path, map[string]interface{}{ ... } to specify options. Uses
reflection