Move opal/compat.rb to opal_ext, split into multiple files

Let's split this compat into multiple files so it's easier to track.