Inline list funcs so we don't pay an extra dispatch cost
Allow types to be given to defrecordp

Part of #1288
Add docs to Mix.Version and make version always the first arg