Allow fields to be filtered, and add textarea input.

From what I could tell, because the filter was being called on `construct`, it was tough to filter it (at least I couldn't find the right time to grab it) so instead the filter is only called when the fields are actually being looped through (to output and save).

Also added a textarea field, and the ability to create custom types as well (via an action).