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.
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
added docstrings to private functions
ran strip_whitespace
fixed bug in doctest
fixed problem with doctest for IdentityOperators
fixed error in test for IdentityOperator
added new argument tests for sympy.physics.quantum