Use companion apply reader instead of case class reader

The case class reader was just delegated through to the companion apply reader but failed if the type was not a case class. Since the companion apply reader will fail at compile time if the appropriate apply method doesn't exist, this doesn't seem very helpful.