Added aioipfabric.filters.parse_filter(<filter-expr-str>) that is used to create an API filter dictionary based on the filter expression string.
For example:
`python
parse_filter("hostname = foo")
{'hostname': ['eq', 'foo']}
parse_filter("and (site = atl, hostname has sw2, vendor = cisco)")
{'and': [{'site': ['eq', 'atl']},
{'hostname': ['like', 'sw2']},
{'vendor': ['eq', 'cisco']}]}
parse_filter("or (site = atl, hostname has sw2)")
{'or': [{'site': ['eq', 'atl']}, {'hostname': ['like', 'sw2']}]}
compound group expressions
parse_filter("""
or (
and(site = atl, hostname has 'core'),
and(site = chc, hostname =~ '.*club-switch2[12]')
)
""")
{'or': [{'and': [{'site': ['eq', 'atl']}, {'hostname': ['like', 'core']}]},
{'and': [{'site': ['eq', 'chc']},
{'hostname': ['reg', '.*club-switch2[12]']}]}]}
`