fix primitive conversion errors in code generation for implicit return in methods

I added some pending tests a while back that noted that we generate invalid bytecode when returning an int from a method that returns doubles. This fixes the bytecode by converting the implicit return's value if necessary
fix missing conversion for implicit returns in new backend