This is partial work towards including Typescript types for pyproxy.js. Typescript does not understand assignments to `Module`, it wants information to be communicated via `import` and `export`. Therefore, the public functions from `pyproxy.js` that we want type annotations for need to be exported using the `export` keyword. This necessitates switching to importing pyproxy.js via rollup.

There are two commits here, in the first commit I made the manual changes needed preserving indentation in pyproxy.js, and in the second commit I applied the linter to pyproxy.js. Almost every line in pyproxy.js has a change in indentation. These indentation changes are my main motivation for making this into a separate PR.

Currently I apply the macro preprocessor to pyproxy.js with 
```sh
cat $< | $(CC) -E -C -P -imacros src/core/pyproxy.c -o $@ $(MAIN_MODULE_CFLAGS) -
```
As far as I can tell the effect of this is close to identical to what was happening before. In the future, we may consider rearranging things to avoid the need for preprocessing `pyproxy.js` -- it is unusual and has the potential to confuse people.
MAINT Use rollup instead of EM_JS to include pyproxy.js . This is partial work towards including Typescript types for pyproxy.js. Typescript does not understand assignments to `Module`, it wants information to be communicated via `import` and `export`. Therefore, the public functions from `pyproxy.js` that we want type annotations for need to be exported using the `export` keyword. This necessitates switching to importing pyproxy.js via rollup.

There are two commits here, in the first commit I made the manual changes needed preserving indentation in pyproxy.js, and in the second commit I applied the linter to pyproxy.js. Almost every line in pyproxy.js has a change in indentation. These indentation changes are my main motivation for making this into a separate PR.

Currently I apply the macro preprocessor to pyproxy.js with 
```sh
cat $< | $(CC) -E -C -P -imacros src/core/pyproxy.c -o $@ $(MAIN_MODULE_CFLAGS) -
```
As far as I can tell the effect of this is close to identical to what was happening before. In the future, we may consider rearranging things to avoid the need for preprocessing `pyproxy.js` -- it is unusual and has the potential to confuse people.
PNG


IHDRiCCPICC profile(}=H@_SZv(␡:Yq*BZu04$).kŪ "%/)=B4ktL%b&*^!A""3˘$:{zY9ԜH<& ޴
aVUs1.Hu76өy0XhcYԈSXY+WYuH`K BA%a#FN;\D.\%0r,
Z	/)_c|;N?Wz_3ZZ.[\'C6eWy)5>N4uewxwO{oiry]bKGD	pHYs+tIME
DwIDATxypU׹7}PDJ[HvJm8b]F\:TFEjԱ-uCb_h"` ,!='%jM|d|g
|>1\x/@ x/@ x/@ x/@ x/@ x/R8E7t6l4?ϟqƵk]{rg}w}W3fh׺;M6?Tnn+uپk2dF뮻N3fP;Ǐk̘1?,LVZZF9sh֬Y}뮻O|ꫯBxYkȐ!6m͛;Trrr4h 3C0@/i$QF^zx69s7T^voٲMmۼfر!q>7lrrr}z5insĉ.ceY檫2;vнԓ-_yyyGBI	_J]vviO>DW\q-Z?<$Zׯѣן:mذAcƌ}ݧ.NEڹs&O믿^_~%a^8p@?n:F^|EM<Y~iHn_MMVX)S(??OzW_+6mڤ'j׮]



;t]wq0Xln喐S>'}|駺u!. jԩzW9;{9ek֬SO=գ9''GsQaaa9OgΜܹsޤ^/@߱l2m޼q۷{~I-XO~}xPWW 0,zS*<<1F:ydP5m[oUfff
dɒS\\F$\.ۦ<=z4ڵk}Y76L^xaǣ<eff;wԟ'qv+m[Reee{sGEDDBU'KVVV۸w^3}YbE%_]Òάkرf۶m}*..6W6/>>u]CIIyLLLL}NNNxud^zi:oQFuڵCÒ>Kq'N֭[n:EEEmjժznƌ
^vv>~۸n=4}t?B%&&jҥڿjmOk8!!Awy<)Sm[TTիW{>""Bsվ}twȲ,~a~Q!teY>]YYw}֬YTVVqv>|iŊZre94##C۷oׄ	{Wda+.Tg?<ߢf{~ر#>^6g-^o^{?KNNjܹ}ܾ}nFٶC@RR7~[o}v0ˊlMNNkaۭ_~YkѣGCfrPJ7xxcՊmu-[#3K/
]viѢEzݲo4F'x5qo^xAn;d_0oٲW]cƌ
O9^;4{VWWWcdXm޼Y׿i&z}4{jViucǎرcC.Z^wǏsc<x0 }.?u7~m۶iРA׿~z=Cm4clxbZ[;\tE~S3o)Ƿ]}eY7nE ^Α#Gj~K"\R<LKyyf͚'Ol;w\.SRRBwzu<p6_߮V$jP^vez뭷5{+t~i޼yڿW^y	
[(eWo@3eo81F7tmz\;v/;,r/'?њ5kx<Zp۩7nСںu8i/#lWUUkV˗/ן풒uVs^裏5YQQfΜ֬Yp_əe;>^AYn.\]vvfΜ)7nܨKl^{-xw\k&`?\sUMMMޣ-SK5k'УqsY3Add6mڤɓ'k߾}~6MAo5g}֦)_pȑ#CrV\믿/>}>-[?N8o%Kh~;vL^{mPS?Nk/m+//GD|iii^A/|V9sF3gz+Wrr^裏gϞVViīV);s`@qY-^X1jh6lhVӁ6) }@CCNeeem7o޼N{϶LAxbmݺU^W7pSw!M4I/v={vw[ ^p!S$VĉAձv6c***t	{ڰanŊ
۔{ojmڴ)2:thHn[LL'^}{1:i$g???ߡ0e0Z."@hƍ,KgڵAMAܚpL h[|˟$25M<sLN 8ڼyMS_zmzSdڽ{Nz߻i
⌌3e0Masʕ:p.nێ` f`@P&N'xBYYYzԯ_nߦ#GjѢE~%Ct-5nWSZZ4a};	chd9'3yސm[gL>1@=S@~vcn[sW/ۭ$	^3߿?$x<.OKKu*33쁽q;.OMM ,;]tW_}P-g}6l9>Cr/HSL[nm!G~;mM֫ѣGOm3c.Fuuu9^_~V׫nIIJJҏ~^s~sG-_<_&]zӧ|vSNiڻwv,/ԬY{n~ӟ}}0f? L:mg߿-[MCCq]~ھ}yT=.622R=P^˵n:7N׿ׯ_w3yVX/% D0,#ayn]C>3jôiѣG+11
x<Sffz͝wީÇw}|M}󕙙toҥK5dȐnF?ٳgw{۶b=zTAfҤIZ`Aڰa
/gZf.\wLoG;legg6vX=ݺ
ڲeK8^z>]}}=R(ip^͟?_=X8;}jғDmڴI\A,K_5vX@З-_\7|shy[o.`Cu?A`^^|E==b#FO>ԩS9rvޭ5QQQz7tR@e˖i!krt7jϞ=}O.K7|ӧz;kݻ5o<xh
u?eY
ok<
A?3t!_^Vɓ'n͚5K+V3㨆i̙z't%p.#<B讟WtzD[mkZuu޵caK,ђ%Ko>裏\tiKMMUZZFٳgkΜ9JJJiٳgSbb"7h+&t]s5Z`@O9_?꿵/«`	t%jx4X@:2Ymi
/vHq&@E.WwЋ1,KT={rSr,
_+^#c|e]1.0^g86x/@ ! ^x/ ^x/B1FƘv4L9_5pR=Fc-}g[|_Vb+K'X8ХgYǨ8VId5وHiPK1qNFy+7RbT*3Ò4m^c,H5huWse钉a49\ڳvGb]I.]95B#.pKmtzn¤	?׸	ar	(WSzy^ȲhK#F;meQ\Ky`)n&˲>i+)ť1a>	Oz9'8'Z]F	kыkQbK
*ȵeȼ^8[e+aln0'GX-jr-%8A U,g%t[MRd?:_ڬ(/׫c)i{KR|A-oKIvK.:*lت!n%:˛`k,KG@.X0VCi.%nHK	I.EŸZ!ĹQNw*+[⁃]i|lJmy"tk0^m0(U^,'Z
k=.Wab-%iBKI[0VYɹ.%$|*A^v{TUā.%rP 4g\vzoc{Zcb,K9kT].%OX`{|]i-wOjmPEY(i1:QuQ_ATd6sz]%(V)[	.E7szx*mڪu1k:[m{ګr[2ΈF@)V95
m))%[Ktjx%cGT]cWRDd)*	yJ}¹RjK1q" :S5>ܖ>̭Kn7@	,R]QqK)<ХK^TVjIJoKqb,'Cja]X'4GD: VeܶӶ'RP"3<[0*)tlhK)}**ηUZd	N)CBeP^ɩÍ٪-nh
Q:j@r&s)uKoyB[妹w@3DJKvwkk|NXk۾۴LަݡnE:Z艁7ki(RR'(ului;\Ó8ߨ	%Y.)e~%ti܄0.93ْ+RlK.}U}i1/^mfYjl[r<8Q=FFzՕb^`cԯ5߄ةߵ,K.4p}wlXs1N`6vKGŁ3@nz"r[	.%$:gdۊR!6ޥΓj	g*-ԔT]f)yP!F]C*l;7<Rx4N9q[Q}5=T;e6cjk<#)EDX%
Js)iKy9ya:b5cT^jQ+|#:ۮnߵݦ^Om:?nBO
SLS14í^US UFyvgMK[*߃ka%]cc-%:A?k㫑812.pkNK5BÒ=QI/`#*-6x2s'()4*+}4)<#,˒rNzU^j,.y
/z [V٦bg\sUV)VVVwyQ~ߢb,
VD?f]J(>iPP41ﷶ;GN
c^yrkWUd~ޠ*?ƖkPtFjY6@R\w1(fjYѮ=l@CxkpYz#вxUpVXӦF2^bY<Pjh1*.7UU7%6BSqM#7j%ZZ{xd+6;; ^24x/@^ ^x@ ^x@@(AcIENDB`
PNG


IHDRiCCPICC profile(}=H@_SZv(␡:Yq*BZu04$).kŪ "%/)=B4ktL%b&*^!A""3˘$:{zY9ԜH<& ޴
aVUs1.Hu76өy0XhcYԈSXY+WYuH`K BA%a#FN;\D.\%0r,
Z	/)_c|;N?Wz_3ZZ.[\'C6eWy)5>N4uewxwO{oiry]bKGD	pHYs+tIME
DwIDATxypU׹7}PDJ[HvJm8b]F\:TFEjԱ-uCb_h"` ,!='%jM|d|g
|>1\x/@ x/@ x/@ x/@ x/@ x/R8E7t6l4?ϟqƵk]{rg}w}W3fh׺;M6?Tnn+uپk2dF뮻N3fP;Ǐk̘1?,LVZZF9sh֬Y}뮻O|ꫯBxYkȐ!6m͛;Trrr4h 3C0@/i$QF^zx69s7T^voٲMmۼfر!q>7lrrr}z5insĉ.ceY檫2;vнԓ-_yyyGBI	_J]vviO>DW\q-Z?<$Zׯѣן:mذAcƌ}ݧ.NEڹs&O믿^_~%a^8p@?n:F^|EM<Y~iHn_MMVX)S(??OzW_+6mڤ'j׮]



;t]wq0Xln喐S>'}|駺u!. jԩzW9;{9ek֬SO=գ9''GsQaaa9OgΜܹsޤ^/@߱l2m޼q۷{~I-XO~}xPWW 0,zS*<<1F:ydP5m[oUfff
dɒS\\F$\.ۦ<=z4ڵk}Y76L^xaǣ<eff;wԟ'qv+m[Reee{sGEDDBU'KVVV۸w^3}YbE%_]Òάkرf۶m}*..6W6/>>u]CIIyLLLL}NNNxud^zi:oQFuڵCÒ>Kq'N֭[n:EEEmjժznƌ
^vv>~۸n=4}t?B%&&jҥڿjmOk8!!Awy<)Sm[TTիW{>""Bsվ}twȲ,~a~Q!teY>]YYw}֬YTVVqv>|iŊZre94##C۷oׄ	{Wda+.Tg?<ߢf{~ر#>^6g-^o^{?KNNjܹ}ܾ}nFٶC@RR7~[o}v0ˊlMNNkaۭ_~YkѣGCfrPJ7xxcՊmu-[#3K/
]viѢEzݲo4F'x5qo^xAn;d_0oٲW]cƌ
O9^;4{VWWWcdXm޼Y׿i&z}4{jViucǎرcC.Z^wǏsc<x0 }.?u7~m۶iРA׿~z=Cm4clxbZ[;\tE~S3o)Ƿ]}eY7nE ^Α#Gj~K"\R<LKyyf͚'Ol;w\.SRRBwzu<p6_߮V$jP^vez뭷5{+t~i޼yڿW^y	
[(eWo@3eo81F7tmz\;v/;,r/'?њ5kx<Zp۩7nСںu8i/#lWUUkV˗/ן풒uVs^裏5YQQfΜ֬Yp_əe;>^AYn.\]vvfΜ)7nܨKl^{-xw\k&`?\sUMMMޣ-SK5k'УqsY3Add6mڤɓ'k߾}~6MAo5g}֦)_pȑ#CrV\믿/>}>-[?N8o%Kh~;vL^{mPS?Nk/m+//GD|iii^A/|V9sF3gz+Wrr^裏gϞVViīV);s`@qY-^X1jh6lhVӁ6) }@CCNeeem7o޼N{϶LAxbmݺU^W7pSw!M4I/v={vw[ ^p!S$VĉAձv6c***t	{ڰanŊ
۔{ojmڴ)2:thHn[LL'^}{1:i$g???ߡ0e0Z."@hƍ,KgڵAMAܚpL h[|˟$25M<sLN 8ڼyMS_zmzSdڽ{Nz߻i
⌌3e0Masʕ:p.nێ` f`@P&N'xBYYYzԯ_nߦ#GjѢE~%Ct-5nWSZZ4a};	chd9'3yސm[gL>1@=S@~vcn[sW/ۭ$	^3߿?$x<.OKKu*33쁽q;.OMM ,;]tW_}P-g}6l9>Cr/HSL[nm!G~;mM֫ѣGOm3c.Fuuu9^_~V׫nIIJJҏ~^s~sG-_<_&]zӧ|vSNiڻwv,/ԬY{n~ӟ}}0f? L:mg߿-[MCCq]~ھ}yT=.622R=P^˵n:7N׿ׯ_w3yVX/% D0,#ayn]C>3jôiѣG+11
x<Sffz͝wީÇw}|M}󕙙toҥK5dȐnF?ٳgw{۶b=zTAfҤIZ`Aڰa
/gZf.\wLoG;legg6vX=ݺ
ڲeK8^z>]}}=R(ip^͟?_=X8;}jғDmڴI\A,K_5vX@З-_\7|shy[o.`Cu?A`^^|E==b#FO>ԩS9rvޭ5QQQz7tR@e˖i!krt7jϞ=}O.K7|ӧz;kݻ5o<xh
u?eY
ok<
A?3t!_^Vɓ'n͚5K+V3㨆i̙z't%p.#<B讟WtzD[mkZuu޵caK,ђ%Ko>裏\tiKMMUZZFٳgkΜ9JJJiٳgSbb"7h+&t]s5Z`@O9_?꿵/«`	t%jx4X@:2Ymi
/vHq&@E.WwЋ1,KT={rSr,
_+^#c|e]1.0^g86x/@ ! ^x/ ^x/B1FƘv4L9_5pR=Fc-}g[|_Vb+K'X8ХgYǨ8VId5وHiPK1qNFy+7RbT*3Ò4m^c,H5huWse钉a49\ڳvGb]I.]95B#.pKmtzn¤	?׸	ar	(WSzy^ȲhK#F;meQ\Ky`)n&˲>i+)ť1a>	Oz9'8'Z]F	kыkQbK
*ȵeȼ^8[e+aln0'GX-jr-%8A U,g%t[MRd?:_ڬ(/׫c)i{KR|A-oKIvK.:*lت!n%:˛`k,KG@.X0VCi.%nHK	I.EŸZ!ĹQNw*+[⁃]i|lJmy"tk0^m0(U^,'Z
k=.Wab-%iBKI[0VYɹ.%$|*A^v{TUā.%rP 4g\vzoc{Zcb,K9kT].%OX`{|]i-wOjmPEY(i1:QuQ_ATd6sz]%(V)[	.E7szx*mڪu1k:[m{ګr[2ΈF@)V95
m))%[Ktjx%cGT]cWRDd)*	yJ}¹RjK1q" :S5>ܖ>̭Kn7@	,R]QqK)<ХK^TVjIJoKqb,'Cja]X'4GD: VeܶӶ'RP"3<[0*)tlhK)}**ηUZd	N)CBeP^ɩÍ٪-nh
Q:j@r&s)uKoyB[妹w@3DJKvwkk|NXk۾۴LަݡnE:Z艁7ki(RR'(ului;\Ó8ߨ	%Y.)e~%ti܄0.93ْ+RlK.}U}i1/^mfYjl[r<8Q=FFzՕb^`cԯ5߄ةߵ,K.4p}wlXs1N`6vKGŁ3@nz"r[	.%$:gdۊR!6ޥΓj	g*-ԔT]f)yP!F]C*l;7<Rx4N9q[Q}5=T;e6cjk<#)EDX%
Js)iKy9ya:b5cT^jQ+|#:ۮnߵݦ^Om:?nBO
SLS14í^US UFyvgMK[*߃ka%]cc-%:A?k㫑812.pkNK5BÒ=QI/`#*-6x2s'()4*+}4)<#,˒rNzU^j,.y
/z [V٦bg\sUV)VVVwyQ~ߢb,
VD?f]J(>iPP41ﷶ;GN
c^yrkWUd~ޠ*?ƖkPtFjY6@R\w1(fjYѮ=l@CxkpYz#вxUpVXӦF2^bY<Pjh1*.7UU7%6BSqM#7j%ZZ{xd+6;; ^24x/@^ ^x@ ^x@@(AcIENDB`