Added new failing test for nested if directives, re-factored the
implementation: extracted the directive object
Implemented processing of nested directives
Added error handling for directives that are not closed and malformed
directives
Implemented passing single variable not wrapped in an array.
Re-factored the implementation so that it can run asynchronously by
multiple clients at the same time (which was the case when running the
Jasmine specs in the Node environment) and even concurrently.