Programmable filter can add dimensions to context

Using one or more `add_dimension` options on a programmable filter will
instruct the filter to add those dimensions to the primary
PointContext. This way, the programmable filter can set dimensions that
might be not present on the PointContext at first.