Starting MultiLingualTextFieldWidget PEEP-303

* Wrote ClearableFileInputWithLabel widget
* Created new WidgetWithLanguageLabel &
MultiLingualFieldBaseMixInWidget (to share
label-by-language functionality across all multilingual widgets) and
integrated it into existing multilingual widgets
* Still need to write decompress method on
MultiLingualTextFieldWidget (it's just returning an empty
list for now)
Starting MultiLingualFileFieldForm PEEP-297 PEEP-304

* The compress method is working as intended but I'm not sure if it'll
need more finessing
* Needed to start MultiLingualFileField (since the formfield method is
provided the needed 'upload_to' and 'storage' keys to the default dict.
Re-organizing/cleaning-up/refactoring PEEP-297

* Converting to relative imports
* Breaking out MultiLingualText into a new module (`datastructures`)
* Adding a `utils` module for reusable functions
Adding as_xml() method to MultiLingualText PEEP-297

So MultiLingualText instances can convert themselves into
database-friendly XML on their own.
Integrating as_xml(), improving documentation PEEP-297
Massive 'finally-got-it-working' commit PEEP-297 PEEP-303 PEEP-304

* built-out MultiLingualFieldFile (for serving files from
MultiLingualFileField in an identical way to how django serves
FileField instances)
* Adding `construct_MultiLingualFile_from_xml` to utils (even though it
the current implementation does not use it)
* Adding CustomClearableFileInput widget class which determines how to
properly pass data along to MultiLingualFileFieldForm (the
MultiValueField)
* adding `decompress` method to MultiLingualClearableFileInputWidget
(so database values can be properly unpacked and separated for the
MultiWidget)
* Wrote FileField subclass (FileOrAlreadyExistantFilePathField) which
handles both files AND strings/bools (for handling all states served by
the MultiLingualClearableFileInputWidget widget)
* Integrated all the above code into MultiLingualFileField's
.to_python() and .get_prep_value() methods to handle data moving
to-and-from the database
Fixing errant/sloppy variable misassignments
Removing max_length from MultiLingualFileField __init__