layout api ideas (DO NOT MERGE)

This is just an idea of how to alter the layout api to allow for less biolerplate in graph.js and support serializable graphs/components.