Add a [transparent assert] tactic

I hope we'll one day have an OCaml version in the stdlib, because this
one has some infelicities
(https://coq.inria.fr/bugs/show_bug.cgi?id=3551).  I think we need an
OCaml version to do [transparent assert (foo : nat = nat)] rather
than [transparent assert (foo : (nat = nat))], and so that we can have
both [transparent assert (foo : bar)] and just [transparent assert
(bar)].  Currently, you must name all the hypotheses that you
[transparent assert].
¹ is now a symbol

Fix in response to the fix to https://coq.inria.fr/bugs/show_bug.cgi?id=3541
More replacement of [projT] with [pr]

The instances of [proj1_sig] in Category/Sigma are intentional and
semantically meaningful (they are about subsets/sigT with an hProp).
Merge pull request #443 from JasonGross/remove-more-projT

More replacement of [projT] with [pr]
Merge pull request #442 from JasonGross/transparent-assert

Add a [transparent assert] tactic
Solution to Exercise 3.1 and two preparing lemmas added.
Merge pull request #445 from marcbezem/master

Solution to Exercise 3.1 and two preparing lemmas added.