Как вариант, воспользоватся Hashids. Выглядит как случайная строка, но ее можно декодировать в числа (массив например, [1, 2, 3]). Удобно если нужна связь с БД.
Большинство CMS поддерживают как минимум половину того что Вы назвали. Некоторые можно расширить до нужного функционала плагинами. Одно время делал (плюс/минус)подобное на Joomla, но сейчас пересел на October CMS. Посмотрите, если по функционалу подходит (включая плагины), можете попробовать. Если чего не хватает, сделать свой плагин очень просто.
Никакой локальной истории в Sublime Text (может плагины есть, но я не пользуюсь таковыми). Используйте Git в следующий раз или WebStorm/PhpStrom (в них есть локальная история без необходимости в VCS).
Задайте заголовок Content-Type: application/octet-stream.
.htaccess: AddType application/octet-stream .pdf
В PHP:
header('Content-Type: application/octet-stream');
// Возвращаем нужный файл, например echo file_get_contents(...).
// Обязательно сделайте защиту от взлома!
Это не ошибки, Warning. Тут дело в том, что это атрибуты (точнее методы), заданные магическим методом (__call). Т.к. эти методы не задокументированы (через @method в PHPDoc), то PhpStorm не знает о них. IDE helper тут не поможет, поэтому остается только игнорировать эти сообщения.