Rewrite design principles

More focused on features of component-based development. Add external
references.
Update README