Initial addition of a 'key' argument to cached functions.
Factorial method has been implemented.
Merge branch 'develop' into public/structure/cached_args-15657

* develop: (58 commits)
  Updated Sage version to 6.2.beta2
  fix doctest error
  Limit the GAP command line history
  integrate better with Integer.is_prime
  Combine ECM-GMP with Baillie-PSW for prime factorization
  Cleaned up documentation and formatting.
  add doctesr
  Trac 15262: fix combine function
  trac #15810: The graph data structures may have a ._directed but no .directed
  ignore randomness in assertion
  trac #15810: Immutable directed graphs should know that they are directed
  Trac 15166: regression test
  Fix representation of RIF elements with large exponent
  docbuilding: suppress warnings during latex build
  workaround for the utf8 code points in the Sage banner
  Trac 15798: fix mwrank doctest for Solaris
  do not abbreviate 3.99999... to 3.99 with # abs tol 1e-2
  setuptools: export PYTHON_EGG_CACHE and silence a warning about it
  Remove .hgignore files
  PARI: fix pow, mod and shift operators
  ...
Corrections as required

Unncessary memory was being used. Required changes have been done and tested.
Merge branch 'develop' into public/structure/cached_args-15657

* develop: (163 commits)
  Updated Sage version to 6.2.beta3
  fix incorrect permissions for install-sh
  Prevent python from using system hg and svn during its installation.
  Do not hardcode the non-posix install program
  poison proxy environment variables
  Slight modifications of gap related pkgs SPKG.txt files. * Remove now git recorded old changelog. * Put patches description into subsections.
  remove nose from dependencies
  undefine FORTIFY_SOURCE
  udpate to GAP-4.7.4
  reviewer changes with Travis
  added the affine factorization crystal to the documentation
  Fix modular exponentiation of polynomials over finite field extensions.
  Reenable previously failing doctests for modular exponentiation of polynomials over finite field extensions.
  fix trivial doctest failure
  apply sparc patch also to libgap
  add SPARC alignment fix
  remove duplicated changelog
  reverted changes in k_tableaux
  finished affine factorization crystal
  fixed rep
  ...

Conflicts:
	src/sage/misc/cachefunc.pyx
Merge branch 'develop' into public/structure/cached_args-15657

* develop: (100 commits)
  Updated Sage version to 6.2.beta4
  added documentation, patchlevel bump
  trac #15894 modif of two warnings
  delete cruft from the guava package
  trac #15893 review patch
  trac #15894 another backward change
  trac #15894 changin back the category names
  trac #15xxx proper names should start by a capital letter
  Fix changelog entry for ell_wp
  trac #15893: graphs.petersen_family
  Fixes to code from #9505.
  Fix the banner displayed by sage -h
  trac #15466: remove dead import
  trac #15795 line wrap
  trac #15795 redone with ( ::)
  Fraction to power series: doctests
  Fraction to power series conversion when the fraction coerces into the base ring
  15698: Allow construction of power series from fractions
  Create *unevaluated* integrals when converting sage integrals to sympy
  Use evaluate=False in SympyConverter too
  ...
Added decorator_keywords decorator to simplify writing decorators with optional keyword arguments
Added key_normalizer for cached_function
Renamed key_normalizer to create_key for cached_function to be consistent with UniqueFactory
Add create_key parameter for cached_method
Merge branch 'develop' into public/structure/cached_args-15657

* develop: (121 commits)
  Updated Sage version to 6.2.beta5
  in docstring: added ``
  OSX 10.4 build fix
  Only accepts fields as input for change_ring
  FiniteStateMachine.determine_alphabets: one more small correction in docstring
  add definition
  use pydoc.pager on _sage_doc_unformatted instead
  FiniteStateMachine.determine_alphabets: corrected description of parameter reset
  Trac #13174: sagedoc.help() didn't discriminate cachedfuncs from funcs
  trac #15951 correct one raise statement towards python3
  Added destruction of pool in parallel_iter
  separate absolute from local (implicit relative) imports
  microfixes
  Added global options to rigged configurations to improve printing.
  Trac 13609: fix symbolic expression auto evaluation when content is in GF(2^k)
  Trac 13048: fixed division without remainder for polynomials over QQbar
  allow Singular to build with recent versions of Xcode
  removed k from init
  remove the avoid section "Function" in the intial comment and implement a function are_mutually_orthogonal_latin_squares
  Do not forget to define ambient_field before computing its algebraic closure.
  ...
Merge branch 'u/saraedum/ticket/15657' of trac.sagemath.org:sage into public/structure/cached_args-15657

* 'u/saraedum/ticket/15657' of trac.sagemath.org:sage:
  Add create_key parameter for cached_method
  Renamed key_normalizer to create_key for cached_function to be consistent with UniqueFactory
  Added key_normalizer for cached_function
  Added decorator_keywords decorator to simplify writing decorators with optional keyword arguments

Conflicts:
	src/sage/misc/cachefunc.pyx
Fixes due to my bad merging skills.
Merge branch 'develop' into public/structure/cached_args-15657

* develop: (155 commits)
  Updated Sage version to 6.2.beta6
  32-bit fix
  typo fixing
  fix int/long doctest
  trac #16032: These matrices should be sparse
  trac 16032: This can be simplified... :-P
  Correct typo in sage/symbolic/ring.pyx.
  Put comment in the code and add more examples.
  trac #16032: reviewer's remarks
  FiniteStateMachine.__add__ is the same as __or__
  trac #16032: Bug in IncidenceStructure.dual_design
  final edits
  more changes -- please check if I got your algorithm right, Travis
  Review changes from Ben.
  further optimizations
  Fixed KR doctest and documentation of q_dimension.
  Fixes for q-dims for general highest weight crystals.
  more optimizations
  Partial work for general HW crystals.
  Review changes and (minor) optimizations.
  ...
Merge branch 'develop' into t/15003/ticket/15003
Fix parent of RIF factorial()
fixing the broken inject_shorthands methods, and modifying doctest framework so that this fix can be tested for
same change in toric varieties code
Merge branch 'public/structure/cached_args-15657' of trac.sagemath.org:sage into public/structure/cached_args-15657

* 'public/structure/cached_args-15657' of trac.sagemath.org:sage:
  Fixes due to my bad merging skills.
  Add create_key parameter for cached_method
  Renamed key_normalizer to create_key for cached_function to be consistent with UniqueFactory
  Added key_normalizer for cached_function
  Added decorator_keywords decorator to simplify writing decorators with optional keyword arguments
  Initial addition of a 'key' argument to cached functions.
Fixed doctests.