Improve link demonstration page layout.
Merge pull request #129 from nicksay/same-url-navigation

Improve link demonstration page layout.
Release "unified execution" for scripts and styles.

Promote previous `experimental-execute-unified` logic to be always enabled.

Inline script and style evaluation now always uses two functions:
- `eval`: conditionally evaluate the text only if changed
- `exec`: unconditionally execute the text

This matches the behavior of external script and style installation:
- `load`: conditionally install the resource only if changed
- `get`: unconditionally install the resource.

When processing a SPF response, the script and style execution rules are now:
* If an inline `<style>`, inline `<script>`, external `<link>`, or
  external `<script src>` with a `name` attribute is parsed, only execute
  if a style/script has not already been executed that matches the URL or
  text content.  Remove all other scripts and styles with the same name after
  executing.
* For all other scripts and styles (without a `name` attribute), execute
  unconditionally.

Progress on #25.
Merge pull request #131 from nicksay/unified-execution

Release "unified execution" for scripts and styles.
Improve string partitioning logic.
Merge pull request #133 from nicksay/string-bisect

Improve string partitioning logic.
Allow navigation to the same URL.

Update event handling to no longer ignore clicks and `spf.navigate` calls to
the same URL.

If navigating to the same URL and it contains a hash (e.g. from `/page` to
`/page#target`), short-circuit, attempt to scroll instead of sending a request,
and add a history entry for the destination.  This matches browser behavior.

If a navigation to the same URL occurs, either a by request or scroll, update
the existing history entry instead of adding a new one.  This also matches
browser behavior.

Closes #126.
Merge pull request #132 from nicksay/same-url-navigation-2

Allow navigation to the same URL.
Use "hash" when referring to URL sections.

Using "hash" instead of "fragment" is more consistent with native JS objects.
Merge pull request #135 from nicksay/url-functions

Use "hash" when referring to URL sections.
Add support for an advanced task scheduler managed by the application.
Merge pull request #136 from DavidCPhillips/allow-scheduler

Add support for an advanced task scheduler managed by the application.