Move custom rf class outside the combsimp definition

This fixes, or rather, works around, a bizarre caching issue involving classes
defined inside functions.  See the discussion on pull request #1710.
Combinatoric Cheatsheet

A combinatoric cheatsheet. It include methods names and a short
description.
Modified latex printing of Lambda to use \mapsto
Modified tests so working with \mapsto version of Lambda
Removed  that I forgot about in test_latex.py
Modified tests to include parentheses around whole Lambda expression
Corrected tests for Lambda
Fixes #2676 : Convert Matrix to NumPy Array with NumPy dtype

Exposes dtype to the user. Default dtype is 'object'.
Rename d_type to dtype
New module in sympy.physics.quantum for bosonic and fermionic operators, and functions for normally order expression of such operators
fixed spelling error
renamed method annihilation to is_annihilation
Added tests for matrix2numpy
Relaxed conditions for when to carry out tensor products with operators and states, so that it can be used more flexibly with combinations of states and vectors, for example in a tensor product of a state and an identity operator (to project out some part of a composite system)
added an identity operator
Added classes for bosonic Fock and Coherent states (Bras and Kets)
fixed typo with recursive_limit
removed unused commutator and anticommutator rules
added test and (anti)commutation rules for IdentiyOperator. Perhaps it would be better to set is_commutative = True in this class, but it breaks qapply
added FermionFock states