Allow Infix constructors of the form ::..
Allow infix constructors with custom priority and associativity.

Follow the same rule than standard operators, but start with ":".
Allow operator-like function notation for infix constructors.

This patch allows the following constructions:
 - M.(:+) (x,y) .
 - (:+) (x,y,z) infix constructors can now have any arity.
    As with operators, the infix notation is only possible with arity 2.
 - It is possible to rebind [].
 - M.true, M.false, M.() and M.[] (to use rebinded constructors).
Fix pretty printers for infix constructors.
Update ocamldoc's html backend with infix constructors.