Optimize: ID properties/methods

* Update: `id` property "private" (now `_id`)
* Update: `set_id()` "private" (now `_set_id()`)
* Remove: `check_id()` (unnecessary)
* Optimize: `set_id()` only sets ID once
Optimize: Cache component namespace
Optimize: Component status methods
Add. `Component.get_controller()`

* More specific request than `get_parent()`
Refactor: Use `Component.get_controller()` instead of `get_parent()` where appropriate
Refactor: `Component.get_component()` uses options object instead of separate parameters
Fix: Recursive option in `Component.get_component()` calls
Optimize: Do no set `recursive` option unnecessarily for `Component.get_component()`
Update: Do not check containers in `Component.get_component()`
Optimize: Remove unused component container properties/methods
Optimize: `Component.set_component()`
Add: `Component.clear_component()`
Refactor: Use `Component.clear_component()` where appropriate
Update: Rename component attributes object (private notation)
Add: `Util.obj_keys()`
Optimize: Component attribute initialization
Updated: Build JS libs
Optimize: `Component.get_dom_attributes()`

* Refactor: `Component.dom_get()`
    * Use options object for conditional operations (remove `put` parameter)
    * Control whether DOM initialized
Optimize: `Component.get_attribute()`
Update: `Component.call_attribute()` (documentation)