Add the consideration of trap in the simulation

- NEW : add class TrapProperty to prepare for trapping mechanism
- NEW : add some related method to consider trap, e.g. in material, in DomainDetails
- ENH : some enhancement of the old code
enhance the consideration of materials and region types

- ENH : enhance the methods to set and get material properties
- ENH : enhance the methods for obtaining the material type of each layer