User registration function too slow
isset can take multiple inputs, and fails if any of them is not set. So, the first if clause could become:

if (!isset($_POST['login'], $_POST['email'], $_POST['password'], $_POST['password_check']))

I personally prefer using !== so that type juggling will not happen.

if ($_POST['password'] !== $_POST['password_check'])

Instead of using SELECT COUNT(*) query to fetch existing username/email in your DB, you can instead set those columns to be UNIQUE and just go to the INSERT statement. The INSERT will fail with error code 1062.
Instead of using camagru_jgengo.user everywhere, you can set the dbname in the DSN string.
While not necessary, you can switch to using crypt() instead of md5 hashing. An MD5 has a higher collision chance, and since you are using it for sending emails with verification links. Using some form of salt will protect you from sending the same verification links to multiple users.