Rework TTY column

* Rename internal identifier from TTY_NR to just TTY
* Unify column header on platforms
* Use devname(3) on BSD derivate to show the actual terminal,
  simplifies current FreeBSD implementation.
* Use 'unsigned long int' as id type, to fit dev_t on Linux.

Only on Solaris the terminal path is not yet resolved.
diff --git a/Process.c b/Process.c
index e7431ce..9575ed6 100644
--- a/Process.c
+++ b/Process.c
@@ -378,17 +378,15 @@
       xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tgid);
       break;
    case TPGID: xSnprintf(buffer, n, "%*d ", Process_pidDigits, this->tpgid); break;
-   case TTY_NR: {
-      unsigned int major = major(this->tty_nr);
-      unsigned int minor = minor(this->tty_nr);
-      if (major == 0 && minor == 0) {
+   case TTY:
+      if (!this->tty_name) {
          attr = CRT_colors[PROCESS_SHADOW];
-         xSnprintf(buffer, n, "(none)   ");
+         xSnprintf(buffer, n, "(no tty) ");
       } else {
-         xSnprintf(buffer, n, "%3u:%3u  ", major, minor);
+         const char* name = String_startsWith(this->tty_name, "/dev/") ? (this->tty_name + strlen("/dev/")) : this->tty_name;
+         xSnprintf(buffer, n, "%-8s ", name);
       }
       break;
-   }
    case USER:
       if (Process_getuid != this->st_uid)
          attr = CRT_colors[PROCESS_SHADOW];
@@ -435,6 +433,7 @@
 void Process_done(Process* this) {
    assert (this != NULL);
    free(this->comm);
+   free(this->tty_name);
 }
 
 static const char* Process_getCommandStr(const Process* p) {
@@ -612,8 +611,9 @@
       return SPACESHIP_NUMBER(p1->tgid, p2->tgid);
    case TPGID:
       return SPACESHIP_NUMBER(p1->tpgid, p2->tpgid);
-   case TTY_NR:
-      return SPACESHIP_NUMBER(p1->tty_nr, p2->tty_nr);
+   case TTY:
+      /* Order no tty last */
+      return SPACESHIP_DEFAULTSTR(p1->tty_name, p2->tty_name, "\x7F");
    case USER:
       return SPACESHIP_NULLSTR(p1->user, p2->user);
    default: