Include and Exclude params on terms agg

```
 __      __._____________ 
/  \    /  \   \______   \
\   \/\/   /   ||     ___/
 \        /|   ||    |    
  \__/\  / |___||____|    
       \/                 
Not ready for review - still working out some kinks, will add review label when ready
```

Closes #1616 - precursor to #1527 

Adds *exclude* and *include* params to the *terms* agg builder

- Add `regex` agg type
  - Add `regular expression` editor
  - Add `RegexAggParam` class
- Change how AggParam classes are loaded (based on type)
  - Updated tests
- Added `label` filter with tests

The label filter was added so I could use the aggParam name as the field label - that filter may be useful elsewhere, and could probably use some extending.
I'm not a fan of specifying the 'optioned' param here, primarily because of the hard link it creates between the param "DSL" and the implementation. For the most part, I would like the param classes to be hidden from the params themselves... does that make sense?