Add Universal Properties

Terminal morphisms are defined in terms of initial morphisms.  We could
make it a bit better by making [(FunctorFromTerminal C X)^op =
FunctorFromTerminal C^op X] by giving [PreCategory] an extra field about
how the composition of identity with identity is identity...

After    | File Name                             | Before
-----------------------------------------------------------
0m39.73s | Category/Equality                     | 0m39.94s
0m21.41s | NaturalTransformation/Equality        | 0m21.08s
0m17.49s | Functor/Equality                      | 0m16.90s
0m11.25s | UniversalProperties                   |   N/A
0m11.08s | Comma/Duals                           | 0m10.40s
0m10.49s | Comma/CommaCategory                   | 0m10.99s
0m09.45s | Groupoid                              | 0m08.98s
0m08.10s | Category/Morphisms                    | 0m07.92s
0m04.73s | Grothendieck/ToSet                    | 0m04.88s
0m03.73s | Groupoid/Functors                     | 0m03.84s
0m02.36s | SumPreCategory                        | 0m02.31s
0m02.03s | Functor/CompositionLaws               | 0m02.23s
0m01.93s | Category/Product                      | 0m02.14s
0m01.72s | NaturalTransformation/Duals           | 0m01.83s
0m01.36s | NaturalTransformation/Composition     | 0m01.36s
0m01.21s | NaturalTransformation/CompositionLaws | 0m01.26s
0m01.12s | InitialTerminalCategory               | 0m01.18s
0m01.01s | Comma/Projection                      | 0m00.98s
0m00.89s | NatCategory                           | 0m00.95s
0m00.66s | BoolCategory                          | 0m00.66s
0m00.58s | SetCategory                           | 0m00.53s
0m00.42s | Discrete/Duals                        | 0m00.41s
0m00.36s | Functor/Product                       | 0m00.34s
0m00.32s | IndiscreteCategory                    | 0m00.28s
0m00.30s | Common                                | 0m00.29s
0m00.28s | FunctorPreCategory                    | 0m00.20s
0m00.27s | NaturalTransformation/Identity        | 0m00.23s
0m00.26s | Adjoint/UnitCounit                    | 0m00.23s
0m00.22s | IsGroupoid                            | 0m00.21s
0m00.22s | Functor/Duals                         | 0m00.24s
0m00.22s | Functor/Composition                   | 0m00.28s
0m00.20s | NatCategory/Duals                     | 0m00.21s
0m00.19s | Category/Objects                      | 0m00.24s
0m00.18s | NaturalTransformation/Core            | 0m00.18s
0m00.17s | Category/Core                         | 0m00.17s
0m00.15s | NaturalTransformation/Product         | 0m00.15s
0m00.13s | Functor/Core                          | 0m00.15s
0m00.13s | Category/Duals                        | 0m00.17s
0m00.12s | Functor/Identity                      | 0m00.08s
0m00.12s | Peano                                 | 0m00.12s
0m00.10s | Category/Category                     | 0m00.10s
0m00.10s | Grothendieck                          | 0m00.08s
0m00.09s | NaturalTransformation                 | 0m00.13s
0m00.09s | Category/StrictCategory               | 0m00.08s
0m00.09s | ComputableCat                         | 0m00.12s
0m00.08s | Functor                               | 0m00.08s
0m00.08s | DiscreteCategory                      | 0m00.08s
0m00.06s | Utf8                                  | 0m00.08s
0m00.05s | NotationsUtf8                         | 0m00.04s
0m00.04s | Notations                             | 0m00.04s
-----------------------------------------------------------
2m37.37s | Total                                 | 2m25.37s