Add some lemmas to PathGroupoids
Classify the path space of precategories

After    | File Name                 | Before   || Change
------------------------------------------------------------
0m06.31s | Total                     | 0m02.12s || +0m04.19s
------------------------------------------------------------
0m04.16s | categories/Category/Paths |   N/A    || +0m04.16s
0m01.63s | contrib/HoTTBook          | 0m01.69s || -0m00.06s
0m00.42s | categories                | 0m00.36s || +0m00.06s
0m00.10s | categories/Category       | 0m00.07s || +0m00.03s
Prove that groupoids are self-dual
Bump submodule to get a fix to grammar.cma

Needed for dpdgraph on travis.
Update dpdgraph to compile with current trunk
Fix the stackoverflow in dot

It was caused by the self-referential nature of primitive projections.
Rather than filter this out in Coq-land, we simply ignore requests to
add self-edges in dot-land.
Correctly handle cycles in dpd2dot
Merge pull request #650 from JasonGross/fix-dpd-graph

Fix dpdgraph
Merge pull request #649 from JasonGross/path-precategory

Path space of a precategory
Enable more dual unification in whiskering
Finish non-dep functoriality of adjoints

With some help from Mike Shulman on #627 and #629, I've managed to
finish the construction that shows that the construction of adjoint
functors is functorial in its functor argument.  I've not yet managed to
extend this to the dependent case as an assembled functor, though the
individual parts all have dependent versions.

This closes #629.

After    | File Name                                             | Before   || Change
----------------------------------------------------------------------------------------
0m09.28s | Total                                                 | 0m10.99s || -0m01.70s
----------------------------------------------------------------------------------------
  N/A    | categories/Adjoint/UniversalMorphisms/FunctorialLaws  | 0m08.25s || -0m08.25s
0m06.65s | categories/Adjoint/Functorial/Laws                    |   N/A    || +0m06.65s
0m01.57s | contrib/HoTTBook                                      | 0m01.58s || -0m00.01s
  N/A    | categories/Adjoint/UniversalMorphisms/FunctorialParts | 0m00.54s || -0m00.54s
0m00.40s | categories                                            | 0m00.43s || -0m00.02s
0m00.24s | categories/Adjoint/Functorial/Core                    |   N/A    || +0m00.24s
0m00.16s | categories/Adjoint/Functorial/Parts                   |   N/A    || +0m00.16s
0m00.11s | categories/Adjoint                                    | 0m00.13s || -0m00.02s
0m00.08s | categories/Adjoint/Functorial                         |   N/A    || +0m00.08s
0m00.07s | categories/Adjoint/UniversalMorphisms                 | 0m00.06s || +0m00.01s
Be more strict about travis success conditions

If some documentation fails to build, consider it a travis error.

This way, we'll catch things that break the documentation sooner.
Work-around for trouble in init_rank

Use an updated version of graphviz
Merge pull request #652 from JasonGross/after-success-strict

Fix dpdgraph, be more strict about documentation failures
splitting already-split idempotents
an endomap splits through at most one type
recovering the witness of idempotency from the splitting
the type of retractions is a retract of partially-coherent idempotents
big reworking of Idempotents
cbn works where simpl fails