Added loading of datalists to bootstrap.

If supports('datalist') and nothing with the lists's ID is found, do an ajax
request for request: datalist=list.getAttribute('list')
Now with actual functions!

get_all_tags loads all keywords from database, then explodes all of them on
','. Returns array_unique()

get_recent_posts() returns an array of the most recent posts (ORDER BY
`created`). Has optional arguments for limit and columns to select on.
Default limit is 5, and default columns are title, url, and description.

get_datalist() creates datalists. Uses a switch on $list to determine what
to generate. Currently only has a case for tags, which uses get_all_tags().
Pages class can now get the url in several ways, including passing it or $_GET

If $_GET, it creates it from the $_GET array, converting $key = $value to
$key/$value.

It can also be passed a url. Check if $url is set and use that.

Better handling on tags/ urls. Replace all whitespace to % so that multiple
tags can be used, and search should handle these.
Load custom.php, load pages into main without removing sidebar.

Remove 'main :not(aside)' on page load and prepend $page->content.

Use $_REQUEST instead of $_POST for forms.

Remove tag_search form handling completely (pages class now handles $_GET)

Add ajax handling for datalists using get_datalist() in custom.php
Method is now get, and rely on ajax() to download datalist.

Removed hidden input for nonce since I'd like for this to be searchable
from external sources.
Now with a sidebar!

Has links for all tags and 5 most recent posts as well as tag search
Removed all code related to determining content from URL (use pages class)

Also load sidebar
Removed commented out hidden nonce and updated pattern to not include spaces
Re-added tag_search form and switched back to only using $_POST
Do not handle _GET