Solving interface hassle

1. proxy classes were extended not of the base class, but one from another resulting each proxy inheriting element-specific interfaces from it's parent
2. moved proxies to "Proxy" sub-namespace
3. now using WebElement instead of IWebElement were only WebElement can pass (no proxies allowed)
4. using "static" as return type from "createFromNodeElement" methods
5. added "ITypifiedElement" interface to indicate what element is instead of what it does
6. TypifiedElement class now only implements ITypifiedElement instead of INamed(was indicating what element does)+IWebElement(was incorrect, since TypifiedElement can't be used in same places as WebElement can fit)
7. property decorators now operate only using new IProxy class instead of WebElementProxy/TypifiedElementProxy/etc.
8. moved away setContainer/getContainer methods from IWebElement into new IContainerAware interface (now class/interface don't need to pretend as IWebElement just to make container-related methods appear in it)
9. rearranging class constructor parameters by importance (even though all of them are still required)
10. misc test suite improvements to ease coming BEM class testing