Use Savitztky-Golay filter to smooth velocity
Merge branch 'dev' into filter_velocity
Add options for post-acquisition filtering of feedback results
Add first draft of feedback benchmark code
Convert feedback calibration fitting to DataFrame

 - Convert feedback calibration fitting to use `pandas.DataFrame`.
 - Separate feedback calibration fitting from updating of `calibration`
   instance.
Add section headings to guide process...

 - Add widget to select previously saved experiments.
  * This will need to be modified, since the path is currently
    hard-coded.
Add draft of pandas HV feed-back calibration
Add functions to fit/plot HV attenuation...

Add functions to fit and plot control board high-voltage attenuation
model.
Add demo func to read from oscilloscope

Add function to demonstrate reading auto-scaled RMS voltage values from
an Agilient MSOX3012A oscilloscope _(using the `pyvisa` module)_.  This
allows the high-voltage attenuation calibration to be automated.
Add diagram of HV feedback circuit for xfer funcs

Add diagram of HV feedback circuit for the transfer function of each
control board hardware revision.
Add calibrate module
Represent HV xfer func symbolically
Update HV calibration to use symbolic xfer funcs

 - Update high-voltage calibration to use symbolic transfer functions.
  * The symbolic functions are derived from first principles, and may be
    rearranged to solve for either `V1` or `V2` (see
    `z_transfer_functions` docstring for details.).
 - Fix R/C substitution for Z.  Prior to this commit the R and C terms
   were not being added together in parallel _(as opposed to in
   series)_.
Rename feedback modules.
Use sympy xfer func for `V_total` method...

Use `sympy` symbolic transfer function in `V_total` method.
Use sympy xfer func for capacitance/Z_device...

Use `sympy` symbolic transfer function in `capacitance` method and
`Z_device` method.
Add docstring to x_position method.
Add functools32 to required packages

The `functools32` package contains the [`lru_cache`][1] decorator which
is used to improve the performance of repeated calls to
`get_*_transfer_function` through [memoization][2] _(i.e., caching
previously compute results)_.

[1]: https://docs.python.org/3.2/library/functools.html#functools.lru_cache
[2]: http://en.wikipedia.org/wiki/Memoization
Merge branch 'calibration' into dev

 - Use `sympy` symbolic definitions of the feedback transfer functions.
 - Use `pandas.DataFrame` in calibration code.
Consolidate feedback xfer function eval code

Provide a single, high-level function for computing any term present in
the transfer function of either control board feedback circuit
_(high-voltage or impedance)_.

The `compute_from_transfer_function` function in the
`dmf_control_board.calibrate.feedback` module computes the term
specified through the `solve_for` argument in terms of the value
assigned to each term provided as a keyword argument with the
corresponding name.  The optional `symbolic` keyword argument may be set
to `True` to return a symbolic `sympy` equality rather than an evaluated
numeric solution.