Calculate implicit TypeTags for leaf types in TypeConverter companion object constructor, rather than in targetTypeTag method. Therefore they are initialized all exactly once and there is no risk of race conditions. Synchronize remaining targetTypeTag methods which construct more complex type tags on demand. Do a similar thing for ColumnType#scalaTypeTag. Fixes #364.