lmfit interface: wrap of elastic peak

Wrap elastic_peak function as a class object for fitting in lmfit. This PR is not ready for review, and I will add more functions as it goes. But you can get some clear picture how to use lmfit. Things to note are as following:

1. The parameters value can bounds can be easily changed according to fitting algorithm.
2. Argument name in elastic_peak function is changed in order to match the name used in parameter_data

The wrapper is straightforward, although it looks a bit messy. 
might as will write a helper function

```
def _gen_class_docs(func):
    return ("Wrap the {} function for fitting within lmfit framework\n".format(func.__name__) + 
           func.__doc__)
```