WIP: inline small function : DO NOT PUSH

DO NOT PUSH
I've done some experiment to inline small functions.

```
function f(a){ g(a) }
var x = f(5),y = f(4);
```
would become
```
var x = g(5),y=g(4);
```
this can lead to more optimization from other passes.
 
the implem a bit messy, it discards complex functions (with closure/branch/..) from inlining.
@vouillon, I would like your input on this.