trac #16909: transitive_closure() and mutable graphs
Trac 16934: always put finite field implementation in factory key
Trac 16934: remove method FiniteFieldFactory.other_keys()
Trac 16934: more cleaning up
Trac 16934: add doctest
Minor addition to affine morhpisms.

Added the functionality for orbit_structure already defined for projective morphisms to affine morphisms.
The function code is the same; the only difference is the examples.
Trac #16972: Moved code to read planar code to separate method
Trac #16972: Extended documentation of _read_planar_code
Trac #16972: Use the new _read_planar_code method in fullerenes and fusenes.
Typo fixes in the orbit_structure function.

Addressed typos in the orbit_structure function of affine_point, projective_point, affine_morphism, and
projective_morphism.
Merge remote-tracking branch 'origin/develop' into ticket/16934
Trac 16934: put back (temporary?) warning about modulus parameter
Trac 16934: fix warning about ignored 'modulus' argument
Minor typo fixes in orbit_structure.

'=' changed to ' = ' in some of the examples.
Changed '<>' to '!=' for python3 compatibility.
rremoved trailing whitespace
Trac #16835: cartesian product of VectorSpaces not in VectorSpaces

{{{
sage: X=CombinatorialFreeModule(RDF,ZZ,category=ModulesWithBasis(RDF))
sage: Y=cartesian_product((X,X))
sage: X in ModulesWithBasis(RDF)
True
sage: Y in ModulesWithBasis(RDF)
False
sage: Y.categories()[1]
Category of modules with basis over Real Double Field
sage: Y.categories()[1] is ModulesWithBasis(RDF)
False
}}}

This weirdness relates to the fact that `ModulesWithBasis(RDF)` prints
as the `Category of vector spaces with basis over Real Double Field`.
The `Category of modules with basis over Real Double Field` is one of
its super categories.

In the case at hand I cannot construct a morphism from `Y` to `X`
because of the category mismatch:
{{{
sage: Y.module_morphism(codomain=X,on_basis=lambda (i,j):X.monomial(i))
------------------------------------------------------------------------
---
ValueError                                Traceback (most recent call
last)
..
ValueError: Free module generated by Integer Ring over Real Double Field
(+) Free module generated by Integer Ring over Real Double Field is not
in Category of vector spaces with basis over Real Double Field
}}}

URL: http://trac.sagemath.org/16835
Reported by: cnassau
Ticket author(s): Christian Nassau
Reviewer(s): Travis Scrimshaw
Trac #16934: Fix factory keys for finite fields to avoid repeated construction

The following sequence of commands somehow breaks the coercion
framework. This is on vanilla Sage 6.4.beta1. The problem only occurs if
{{{impl="pari_ffelt"}}} is explicitly given, even though that is the
default:
{{{
sage: k1.<a> = GF(17^14, impl="pari_ffelt")
sage: _ = PolynomialRing(k1, 'x')(a/2)
sage: k2.<a> = GF(17^14, impl="pari_ffelt")
sage: _ = PolynomialRing(k2, 'x')(a/2)
Traceback (most recent call last):
...
TypeError: no coercion defined
}}}

The underlying reason is:
{{{
sage: k1 is k2
False
}}}
This double construction of the same finite field is caused by slightly
different `UniqueFactory` keys arising during the construction of a
common parent (for the computation of `a/2`) by the coercion system.

Related: #16855

URL: http://trac.sagemath.org/16934
Reported by: jdemeyer
Ticket author(s): Peter Bruin
Reviewer(s): Jeroen Demeyer
Trac #16981: update M4RI and M4RIE to newest upstream release

A new upstream release of M4RI and M4RIE is available, we should update.

- M4RI tarball:
http://m4ri.sagemath.org/downloads/m4ri/m4ri-20140914.tar.gz
- M4RIE tarball:
http://m4ri.sagemath.org/downloads/m4rie/m4rie-20140914.tar.gz

URL: http://trac.sagemath.org/16981
Reported by: malb
Ticket author(s): Martin Albrecht
Reviewer(s): Volker Braun
Trac #16909: transitive_closure() and mutable graphs

In graph/generic_graph.py at `transitive_closure()` line `G =
copy(self)` should probably be `G = self.copy(immutable=False)`.
Otherwise at least on hasse_diagram code one must use
`DiGraph(self).transitive_closure()` instead of
`self.transitive_closure()`. See discussion on ticket #16892.

URL: http://trac.sagemath.org/16909
Reported by: jmantysalo
Ticket author(s): Nathann Cohen
Reviewer(s): Travis Scrimshaw