Data structure for element in xrf calculation

Per @tacaswell 's suggestion, the element data is re-organized. The goal is to build a convenient interface to obtain all the fluorescence related information from xraylib. We may want to extend this element interface as an independent package later, because xraylib is not very easy to use, but currently we only focus on internal use.
I would just forcably cast to a float

```
self._energy = float(energy)
```