Store Custom Element support

This is a draft pull request to gather feedback and fulfill #48 

What is in here:

- A store custom element
- List code, tests and samples being modified to remove its own internal store and use this custom element
- List code not having a store instance by default (to avoid pulling in dstore dependencies if you don't need them), this means List user should always provide a store (which can be the store custom element)

What is not in there:

- delite 0.4.0-alpha support (this is still based on 0.3.0)
- documentation updates
- Select updates to be consistent with List modifications above 
Now that you say it I'm confused myself. The fact is that this solved my issue, I thought I understood why but now you say it I'm not sure why it solved it ;) Let me think again about it and come back to you.