Specialize primitives even when eta-expanding

As pointed out in [PR 6494](http://caml.inria.fr/mantis/view.php?id=6494), primitives are not always specialized even though type information are available.

This request changes code generation to always specialize when enough is known about types.
When I experimented with your patch, I was surprised by the `dlambda` output syntax eg. `array.get addr foo bar` -- at first I suspected that you introduced a bug in the code generation that resulted in a free `addr` variable being wrongly emitted. I discovered that this was only a printing effect, but assumed it was done this way in the past already.

Could you use a less confusing printing scheme? There are three different better ways to do this already in the printing code:

- bigarray code [uses](https://github.com/def-lkb/ocaml/blob/specialized-primitive/bytecomp/printlambda.ml#L69) `Bigarray.get[float32,fortran]`, that is brackets to specify kind and layout.
- inline records [use](https://github.com/def-lkb/ocaml/blob/specialized-primitive/bytecomp/printlambda.ml#L180g) `inlined(%i)`, that is parentheses to specify some extra stuff
- sys.constant [uses](https://github.com/def-lkb/ocaml/blob/specialized-primitive/bytecomp/printlambda.ml#L180) `sys.constant_%s` to decline the possible variants: direct concatenation to the name (`send` does the same without the underscore)

To be fair I should also note that `duprecord` [uses](https://github.com/def-lkb/ocaml/blob/specialized-primitive/bytecomp/printlambda.ml#L180g) your technique of adding the kind after a space. I don't like this because it looks like function application to me -- I think we should only use spaces for stuff the user will recognized as parameters passed to the function.

Pick whichever you like. I have a preference for parentheses or brackets, maybe brackets as parentheses already have a meaning in this scheme-like language. I'll consider sending a patch to harmonize all printing techniques, but this would affect printing behavior of existing stuff so it must be handled separately.