WIP: Documentation and cleanup.

- Specify default encoder in `__construct` args.
- General args alignment & code prettification.
- Starts phpDoc style documentation. Long way to go though.
- Specify arg types in function signature.
- Throw exception if `instances` key is not present on $args array.