Rename TableCriteria to CriteriaParameter
Initial critiria work: convert endtime to a CriteriaParameter
Major change to CriteriaParameter handling

Revamped Criteria class so that all criteria datatypes match
those coming right out of CriteriaParameter parsing.
  - starttime/endtime are now datetime objects
  - duration is a timedelta object

CriteriaParameters are attached either to a table or a report, but
should be attached to any table that can be run on its own (via
run_table).

Fixed run_table to take -C '<keyword>:<value>' for all criteria.

Model for criteria is now that each criteria should be parseable
as a string in unit, thus cannot use MultiField style fields
because that's a pain trying to parse from the command line.

Parsing of command line as well as parameters for a UI report
are now all CriteriaParameter driven.
Implement filter expressions as CriteriaParameters
More criteria work, TableField rename, report sections

Renamed CriteriaParameter to TableField to avoid the confusion between
running criteria as a set of values and a single field or set of
fields that define what a user inputs.

Implemented report Sections -- all tables in the same section
get the same criteria.  Mutliple sections can be used to get
different fields in the user input for the same eventual criteria
keywords.
Support criteria parents and merging TableField values
Criteria based integration tests, cleaned up TableField class
Remove debug
Better handle missing locations in maps.py
More criteria work - additional tests; made resolution a criteria field
More criteria revamp; eliminated default duration; section variables; file upload

Fixed file upload with the new criteria model -- this uses a new field
whose underlying datatype is a string instead of a file and accepts
an uploaded file.  This will work well later when going to a file section
model.

Eliminated the "default" duration because it was confusing.  Instead,
this can be implemented by making different sections with duration
local to that section.  This will show up in the criteria as
multiple duration selections (unless marked as hidden).

Support for ordering fields at the report level for presentation
purposese.

Tests now call both the report via the test client as well as
running individual tables via the run_table management command.
Initial plugins attempt
Support for external plugins; moved business hours out
Minor rebase updates
Handle default criteria values for run_table, fix criteria-list
Add UI for enabling/disabling plugins
Add modal loading view for reload operations
Move device from a Table attribute to just a criteria TableField
Provide simple list of libs for a plugin
Merge branch 'criteria' into plugins

Conflicts:
	apps/plugins/builtin/whois/reports/5_whois.py
	config/reports/9_business_hours.py