[asy][asy]
size(10cm);
pair W = dir(160);
pair X = dir(100);
pair Y = dir(20);
pair Z = dir(-100);
pair A = 2*W*X/(W+X);
pair B = 2*X*Y/(X+Y);
pair C = 2*Y*Z/(Y+Z);
pair D = 2*Z*W/(Z+W);
pair M = (A+C)/2;
pair N = (B+D)/2;
pair I = origin;
pair P = (W+X)/2;
pair Q = (X+Y)/2;
pair R = (Y+Z)/2;
pair S = (Z+W)/2;
pair T = (P+R)/2;
draw(unitcircle);
draw(A--B--C--D--cycle);
draw(W--X--Y--Z--cycle);
draw(A--C, dotted);
draw(B--D, dotted);
draw(M--N, dashed);
draw(I--T, red);
draw(P--R);
draw(Q--S);
string[] names = {"$A$", "$B$", "$C$", "$D$", "$W$", "$X$", "$Y$", "$Z$", "$M$", "$N$", "$I$", "$P$", "$Q$", "$R$", "$S$", "$T$"};
pair[] pts = {A, B, C, D, W, X, Y, Z, M, N, I, P, Q, R, S, T};
pair[] labels = {A, B, C, D, W, X, Y, Z, dir(45), N, dir(-90), P, Q, R, S, dir(90)};
for(int i=0; i<names.length; ++i){
dot(names[i], pts[i], dir(labels[i]));
}
[/asy][/asy]
Let $W$, $X$, $Y$, $Z$, be the tangency points and $P$, $Q$, $R$, $S$ be the midpoints of the sides of $WXYZ$ as shown. Note that $PQRS$ is a parallelogram. Let $T$ be the common midpoint of $PR$ and $QS$. By inversion we have $IAC\sim IRP$ and $IBD\sim ISQ$. Hence
\begin{align*}
&\frac{IM}{AC} = \frac{IN}{BD} \\
\iff & \frac{IT}{RP} = \frac{IT}{SQ} \\
\iff & PR=QS \\
\iff & PQRS\text{ is a rectangle} \\
\iff & PQRS\text{ is cyclic} \\
\iff & ABCD\text{ is cyclic}.
\end{align*}