Properly split attribute strings, even if they have sub attributes

The SDK improperly procesess both search strings and server
responses for said search strings, if the original search string
contains filters between '[]' and said filter contain a '.'.

Example:
Original search string: History[Status.Name='Done']
This will be processed as ["History[Status", "Name='Done']"]
attrstring_splitter refactoring.

- Replaced attrstring_splitter for split_attribute since it was failing
in some cases.
- Created a module for that function.
- Created tests for the same function.
Made connect_test.py work.