libhb/common: API cleanup.
- don't expose rate, mixdown, dither and encoder arrays to the UIs
  - instead, make them available through enumerators
  - this should give plenty of flexibility to implement
    dynamically-populated encoder lists behind the scenes

- use consistent naming for getters
  - hb_get_best_foo() becomes hb_foo_get_best(), and so on

- also implements a very basic mapping mechanism for video
  framerates, encoders,	 and audio encoders, to be improved
  upon at a later date

- adds an additional, passthru-specific fallback mechanism

- cosmetics
  - rename hb_rate_t.string                 to hb_rate_t.name
  - rename hb_mixdown_t.encoder             to hb_mixdown_t.codec
  - rename hb_mixdown_t.human_readable_name to hb_mixdown_t.name
  - rename hb_encoder_t.human_readable_name to hb_encoder_t.name
CLI: update to work with updated libhb/common API.
MacGui: update to work with updated libhb/common API.