* Fix an inconsistency in parsing precedence: 'f x . y' was parsed as '(f x). y' and pretty-printed the other way.
* Extend the deadline.
* Fix an invalid type variable name generation in the type inference engine.
* Fix missing checking that records contain the right fields.
* Fix two negative tests that were rejected for invalid reasons.
* InferTypes: Fix an abusive generalization of type variables. It
  was meant to handle programs like this:

let external ['a] (read : unit -> 'a) = "fun () -> input_value stdin"
let external ['a] (write : 'a -> unit) = "fun x -> output_value stdout x"
let echo = fun (x: unit) -> write (read ())

  But this abusive generalization triggerred several incorrect behaviors
  on other programs. For instance:

let external ['a] (read : unit -> 'a) = "fun () -> input_value stdin"
let external ['a] (write : 'a -> unit) = "fun x -> output_value stdout x"
let echo = fun (x: unit) -> write (read ())
let main = echo ()

  was rejected because it was impossible to find a type to instantiate
  echo.
* For the moment, only the elaboration phase was checking that
  value restriction was respected. Now, we make type inference
  aware of value restriction in order to accept some extra programs
  like:

  let id = fun x -> x
  let id2 = id id
  let main = id2 0
Merge remote-tracking branch 'yurug/master'

Conflicts:
	src/elaboration/elaborationEnvironment.mli
	test/inference/bad/coreml_value_restriction.mle
	test/inference/bad/typeclass_use.mle
	test/inference/bad/typeclass_use_r.mle
	test/inference/bad/typeclass_use_rw.mle
	test/inference/good/coreml_adt.mle
	test/inference/good/coreml_forall.mle
	test/inference/good/coreml_pair.mle
	test/inference/good/coreml_polymorphic_recursion.mle
	test/inference/good/coreml_record_access.mle
	test/inference/good/typeclass_canonical_typing_context_in_scheme.mle
	test/inference/good/typeclass_infer_canonical.mle
	test/inference/good/typeclass_needs_constraint_hoisting.mle
	test/inference/good/typeclass_polymorphic_recursion.mle
	test/inference/good/typeclass_predicate_annotations.mle
	test/inference/good/typeclass_predicate_annotations_priority.mle