settings_sample.py:
- add the rest_framework_docs app

models.py:
- make original_filename and sha1 non-editable
- re-work clean method to create the SampleParameters...the SampleParameterMap instances are saved in the overridden save method since the Sample must exist first
    this simplifies the panel application in utils.py, and guarantees that every sample will always have it's SampleParameters listed, even if they aren't associated with a system Parameter
- Return an empty string in SampleParameterMap _get_name() if no parameter has been associated

utils.py:
- updated apply_panel_to_sample()...now only updates SampleParameterMap instances, doesn't create them...a bit simpler this way

serializers.py:
- added a SampleChannelSerializer to deliver the FCS data array

api_views.py:
- SampleDetail view doesn't call parent patch to apply the panel, calling the parent patch invokes the clean method on Sample, which we don't really want to do...maybe this shouldn't be an Update view for the Sample model? We may want to actually patch the Sample instance in the future and this would require calling the parent patch()
- added ChannelDetail view to retrieve the FCS data array over the REST API, seems pretty fast. Haven't implemented sub-channel selection yet

urls.py:
- added route for ChannelDetail, though I found it was not a good idea to use a browser to access this resource :) Meant for the REST client to access.