Add component class definition
Update Content Handler to extend Component
Update Template Tag to extend Component
Merge branch 'component' into develop
Begin building `Theme` class
Update Theme class metadata
Base Object: Enable file data formatting

* Update: Integrate formatting code from `Component::get_client_script()`
Optimize Component validation
Refactor Theme definition

* Update: Move definition into own file
* Update: Extends `Component`
* Update: Layout uses files functionality
Theme: Add `client_style` methods
Refactor Themes collection (initial)

* Update: Themes extends `Collection_Controller`
* Update: Pass file (script/style) URIs to client method
* Optimize: Cleaner default themes initialization
Optimize component capabilities

* Update: Use instance property instead of static variable
Optimize object file handling

* Optimize: Check if file type exists before initializing
Optimize Collection management

* Update: `Collection_Controller` mode changed to "full" (allows options initialization)
* Optimize: Standardize `add()` method (used in Theme and Template Tag collections)
* Fix: Check if default theme ID already initialized in `Themes::get_default_id()`
Optimize Theme client style

* Fix: Wrong method name used for `set_client_style()`
Prep default theme client script for inline loading

* Update: Client script returns JS object instead of calling `update_theme()` directly
Client: Load theme properties (script/style)

* Add: Retrieve theme attributes via URI
* Add: Build `link` element for client stylesheet
* Fix: Wrong paths used for default theme files
* Fix: Wrong ID used for default (black) theme
Load default themes first

* Update: Default themes initialized with highest priority
* Optimize: Retrieve parent theme based on ID
* Update: Documentation
Merge branch 'opt_theme_registration' into develop
View: Wrap component loading in `try/catch` blocks

* Theme/Template Tag/Content Handler attribute AJAX loading