The Crisscross method for finding the chemical formula
What is the logic behind this method, how to prove this method?

The logic of the method is in fact trivial. Suppose you have to write a compound knowing his oxidation numbers :
$$\ce{xA^{a} + yB^{b} -&gt; A_{x}B_{y}}$$

Where $a$ and $b$ are oxidation numbers  that have opposite sings,  $A$, $B$ chemical species and $x$, $y$ stoichiometric coefficient $ \in \mathbb{N}$. 
We can start from this assumption: if a compound is neutral the algebraic sum of the oxidation numbers of his atoms must be zero ( point .4 of current IUPAC definition of the oxidation state) so we have to find when:

$$ ax+by=0 \space [1] $$

But we assumed that $a$ and $b$ have opposite sings so we can write:

$$ ax - by=0$$

This is a single equation with two variables so you can't solve it easily because it can have several solutions. However when $\textbf{x=b}$ and $\textbf{y=a}$ the equation is always solved, because:

$$ ab - ab=0$$
And so you can always write a compound formula that satisfy equation 1 using this formula:
$$\ce{xA^{a} + yB^{b} -&gt; A_{b}B_{a}}$$

This works for $\ce{Al^{+3} , O^{-2}}$:
$$\ce{xAl^{+3} + yO^{-2} -&gt; Al_{2}O_{3}}$$
 but what's about $\ce{Ti^{+4} , O^{-2}}$?

This turns out $\ce{Ti2O4}$ and not $\ce{TiO2}$ we need another step, we need to divide the subscripts by their greatest common factor gcf(a,b) because we have found another solution of the equation 1 with higher coefficient. In this case the gcf(2,4) is 2 and dividing the stoichiometric coefficient by two we get $\ce{TiO2}$.

Who, how and when developed this method?

I've found it the first time in Chemistry and Human Affairs by William Evans Price, George Howard Bruce, World Book Company, 1949. I don't know who is the inventor.
I think you can easily deduce the crisscross method simply looking at many compounds and their oxidation number! Is not so hard to imagine! 

Is this method only applicable to ionic compounds?

No, it works for every compounds that can be describe with oxidation numbers. Oxidation numbers are the real charge in ionic compounds and a formal (or imaginary) charge in compounds with covalent bonds, look at $TiO_2$ example.

Why compounds like $GaAs$ do not follow this rule?

Is not right if we assume that we are dealing with $Ga(+3)$ and $As(-3)$ the equation is this:
$$\ce{xGa^{+3} + yAs^{-3} -&gt; Ga_{3}As_{3}}$$
if we divide the subscripts by the gcf(3,3)  that is 3, we get $GaAs$. So this method will be always valid until you can describe the compound effectively with oxidation numbers, unfortunately not all the oxidation numbers are so easy to determine.



In fact I don't find the criss cross method useful I think is better to calculate the least common multiple of $a$ and $b$ and then divide it by $a$ for $x$ and $b$ for $y$.
I think this photo, from J. Chem. Educ., 2012, 89 (11), pp 1436–1438, summarize the best way to do it:
  

Edit:

The general solution of |a|x=|b|y  s.t.  x,y∈ℕ is x=n|a| and y=n|b| where n∈ℕ, that is we can use x=2|a|,3|a|...n|a| and similarly y=2|b|,3|b|...n|b| then why use x=|a| and y=|b| only?

(rearranged after the advices in the comment of mannaia)
In fact you can write $Na_{2}Cl_{2}$ without breaking any charge neutrality or valence rule. NaCl is a crystal with a lattice and you  can't consider $NaCl$ like a stand alone unit, what matter is the charge balance, the proportion between positive and negative ions. Maybe if you are dealing with a crystal made of 23456 atoms of $Na^{+}$ and 23456 atoms of $Cl^{-}$ you could  write $Na_{23456}Cl_{23456}$ this is in fact a solution of the equation and is not theoretically wrong however if you are talking about a generic crystal of NaCl you should write the ratio between $Na^{+}$ and $Cl^{-}$ ions it has no sense to choose randomly one of the solutions because has stated mannaia: "there's no need to choose a larger unit, whereas with a smaller one you can fully explain how the crystal is formed". Mathematically speaking we write the ratio to Lowest Terms. 

Why always take the "gcf"?

In fact we don't take the "gcf" we divide for the "gcf" because this is the best way to get the ratio in the lowest terms.

Furthermore as explained in the $TiO_{2}$ example.
$$
A=\{(b,a),(2b,2a),(3b,3a),\ldots\}.
$$
Is a set of solutions of the equation but not all the solutions. If you have a=6 b=-4 you have the solution (2,3) too, here is the plot of the solutions in $\mathbb{N}^{2}$.
 

For compounds with covalent bond is different, because you are dealing with different stand alone units called molecule. For example if you have $C^{-4}$ and $H^{+1}$ the solutions not divide by gcf of the equation have no sense. For example $C_{2}H_{8}$ doesn't exist due the valence of the atoms involved.