Idfxt

This pull request is for the sake of conversation, not necessarily with the intent to merge.  yet. 
@refaqtor I agree with you on not adding nice features before they are needed.  However, I do think we should think of this as a library that can be used outside of E+ and there should be a thought to what its purpose and API are.  I would suggest a Readme.md file that says what the purpose of the library is and what functionalities it provides.  Giving some thought to the use cases of this library (what it does and what it does not do) now will be better than letting things grow completely organically.