Move type checking up in transcoder logic
Move type checking up in transcoder logic

This ensures we don't create invalid C structures because parts have
been allocated while others have not. This would cause segfaults if
someone manages to get the encoding setup in an invalid state.

sferik/rubinius,Azizou/rubinius,Azizou/rubinius,sferik/rubinius,jemc/rubinius,dblock/rubinius,jemc/rubinius,digitalextremist/rubinius,benlovell/rubinius,mlarraz/rubinius,mlarraz/rubinius,Azizou/rubinius,jsyeo/rubinius,heftig/rubinius,ngpestelos/rubinius,kachick/rubinius,jsyeo/rubinius,sferik/rubinius,jemc/rubinius,benlovell/rubinius,ruipserra/rubinius,dblock/rubinius,Wirachmat/rubinius,digitalextremist/rubinius,sferik/rubinius,ngpestelos/rubinius,ruipserra/rubinius,ruipserra/rubinius,ngpestelos/rubinius,jemc/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,benlovell/rubinius,ruipserra/rubinius,dblock/rubinius,heftig/rubinius,Wirachmat/rubinius,digitalextremist/rubinius,Azizou/rubinius,ruipserra/rubinius,benlovell/rubinius,mlarraz/rubinius,dblock/rubinius,jsyeo/rubinius,kachick/rubinius,jsyeo/rubinius,benlovell/rubinius,digitalextremist/rubinius,heftig/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,ngpestelos/rubinius,ngpestelos/rubinius,mlarraz/rubinius,dblock/rubinius,dblock/rubinius,kachick/rubinius,ruipserra/rubinius,kachick/rubinius,Azizou/rubinius,benlovell/rubinius,jemc/rubinius,dblock/rubinius,kachick/rubinius,benlovell/rubinius,Wirachmat/rubinius,Wirachmat/rubinius,mlarraz/rubinius,digitalextremist/rubinius,jemc/rubinius,kachick/rubinius,mlarraz/rubinius,kachick/rubinius,jsyeo/rubinius,digitalextremist/rubinius,heftig/rubinius,Wirachmat/rubinius,jemc/rubinius,sferik/rubinius,heftig/rubinius,digitalextremist/rubinius,sferik/rubinius,jsyeo/rubinius,heftig/rubinius,sferik/rubinius,Azizou/rubinius,Azizou/rubinius,jsyeo/rubinius,ruipserra/rubinius,kachick/rubinius,mlarraz/rubinius,heftig/rubinius