add descriptions for code generation targets

- use PartialFunction instead of Try
- centralize code gen platform information in Target