<sup>This challenge is similar to [this old
one](https://codegolf.stackexchange.com/q/3783/3808), but with some unclear
parts of the spec hammered out and less strict I/O requirements.</sup>

-----

Given an input of a string consisting of only printable ASCII and newlines,
output its various metrics (byte, word, line count).

The metrics that you must output are as follows:

- Byte count. Since the input string stays within ASCII, this is also the
  character count.

- Word count. This is `wc`'s definition of a "word:" any sequence of
  non-whitespace. For example, `abc,def"ghi"` is one "word."

- Line count. This is self-explanatory. The input will always contain a
  trailing newline, which means line count is synonymous with "newline
  count." There will never be more than a single trailing newline.

The output must exactly replicate the default `wc` output (except for the file
name):

    llama@llama:~$ cat /dev/urandom | tr -cd 'A-Za-z \n' | head -90 > example.txt
    llama@llama:~$ wc example.txt
      90  165 5501 example.txt

Note that the line count comes first, then word count, and finally byte count.
Furthermore, each count must be left-padded with spaces such that they are all
the same width. In the above example, `5501` is the "longest" number with 4
digits, so `165` is padded with one space and `90` with two. Finally, the
numbers must all be joined into a single string with a space between each
number.

Since this is [tag:code-golf], the shortest code in bytes will win.

(Oh, and by the way... you can't use the `wc` command in your answer. In case that wasn't obvious already.)

Test cases (`\n` represents a newline; you may optionally require an extra
trailing newline as well):

    "a b c d\n" -> "1 4 8"
    "a b c d e f\n" -> " 1  6 12"
    "  a b c d e f  \n" -> " 1  6 16"
    "a\nb\nc\nd\n" -> "4 4 8"
    "a\n\n\nb\nc\nd\n" -> " 6  4 10"
    "abc123{}[]()...\n" -> " 1  1 16
    "\n" -> "1 0 1"
    "   \n" -> "1 0 4"
    "\n\n\n\n\n" -> "5 0 5"
    "\n\n\na\nb\n" -> "5 2 7"