Is Object an instance of a class or is it a singleton class?

an object can extend a class because it would imply that an object as value is a subtype of a class.

You can never be a subtype of a class, classes and types are completely different things. types exist at compile time, classes exists in the JVM runtime.

When you define a class A or a trait B you are also defining types with the same names.
The link that I provided contains a more in deep discussion about that.

And finally, as I said, you can consider the object keyword as a shortcut to create a class and an unique instance of that class. Just that the name that you give to the object is the name of the value not the name of the class*.
It is just the singleton pattern embedded in the language.