Fix typo in manual
Fix: close the .glob file as the last action

This way the STM patch will join the environment _before_ the
glob file is closed. Thus lazy computations will be allowed to
write to the glob file descriptor
Side effect free implementation of admit (Isabelle's oracle)

new Axiom in Logic.v,  proof_admitted : False.

admit now simply cases proof_admitted and does
not create a new Axiom in the environment.
Add OpaqueDefIdx to represent marshalled proofs

OpaqueDef t is turned into OpaqueDefIdx t_idx by the "enlighten_library"
function, and (t_idx, t) pairs are then stored in the part of the .vo
file containing only proof terms. This patch removes occurrences of
Obj.magic in the kernel.
Add future library to represent pure computations

Since the whole system is imperative, futures are run protecting
the global state, and the final state is also saved to let the user
freely chain futures. For now their evaluation semantics is the one of
lazy_t.
Support closures in the system status

Hence freeze takes ~marshallable:bool, so that when we want to marshal
data to disk/network we can ask the freeze functions of the summary to
force lazy values and futures.
New module Xml_printer (dual to Xml_parser)

Code for printing XML moved from xml_utils.ml to xml_printer.ml
and improved to generate less garbage using Buffer.t systematically.
State Transaction Machine

This is the work described in the Coq Workshop 2012 paper.
The interp function just populates a graph of transaction, then one
can observe a node in the graph forcing its evaluation.
When possible proofs (branches of the graph) are stocked inside
futures, thus the node corresponding to Qed can be reached without
executing the proof script. The environment thus may hold proof promises
(instead of proof objects) for some theorems, and bad promises
are discovered only joining the safe environment.
Imperative modifications to the environment made by some tactics are
now explicitly declared by the tactic and modeled as let-in/beta-redexes
at the root of the proof term. An examples are abstract tactic.
theories/ hacked to make STM compile the whole library

Problems:
1) Ltac _parsing_ seems to trigger globalization, so we force the
   execution of the previous states by hand in the scripts with 'Join.'
2) Some tactic declarations have been reworded putting Local in front
   (not really needed)
3) An occurrence of ring seems to diverge, commented out.
4) Detection of Module with parameters (a command that must be executed
   immediately (classification as VtNow) since it changes the grammar
   is incomplete, explitic 'Join.' added instead
CoqIDE ported to STM (and improved a bit)

Main changes for STM:
1) protocol/serialization implementation with much less copy/paste
2) protocol changed to carry state ids
3) colouring reflects the actual status of every span (evaluated or not)
4) button to force the evaluation of the whole buffer
5) cmd_stack and backtracking completely changed to use state numbers
   instead of counting sentences

Collateral changes:
1) Coq_lex now identifies sentences and comments in a precise way,
   and corresponding tags are set in the text_buffer
2) Finding sentences, re-lexing on user action, relocating the caret
   adjusted to the new lexing/tagging
3) Unjustified zapped away but still doable
4) Less copy/paste in tags et similia
5) coqtop/handle locking mechanism improved to "allow" recursive locking
6) tentative Emacs/PG mode
Initial attempt to make a jEdit plugin
statically correct version built on Isabelle/11cf810b8f600
reduce parse_spans to dummy + remove unused header_edits
snapshot
snap
fixup merge
fixup merge
fixup merge
fixup stm
fixup stm