Add Component.width() and Component.height().

Close #880.
Optional since we can do this later during a bigger refactor, but can these be moved below the public vars?