Move GHCJS.Foreign.hs to GHCJS.Foreign.Internal

This is so that we can use GHCJS.Marshal and GHCJS.Marshal.Pure in
GHCJS.Foreign.  Some of the code will be moved back into
GHCJS.Foreign (ToJSString and FromJSString and anything that uses it).

This commit is mostly to keep the history of GHCJS.Foreign.Internal.
Make ToJSString a subtype of ToJSRef and PToJSRef

and FromJSString a subtype of FromJSRef and PFromJSRef