Differentiates between obj.__init and obj.__construct

- __init is only used with tables, and runs from the child to the
  parent, thus remaining only the down-most values.
- __construct is only used with functions, and from the parent to the
  child, thus remaining only the down-most modifications.