When the requires argument for an Atom is passed in as a string,
each character of the string is iterated over to build up a
requirement list. This works for simple one letter argument
names but not for long argument names.
Added check for str and unicode types to prevent iterating over a
string.
Change-Id: Ida584221b48966d26935fb2ede0075aabb7ce972