Return instance from add for chaining. Add constructor that takes a map.

I let the add method return "this" soo that we can chain method calls. Like ```new Filter().add("some", "value").add("another", "value")

I added a constructor that takes a filter map and uses a copy of that for the initial data.