Search not performed until VRFs loaded

A prefix search parsed from URI is now not performed until the selected
VRFs have been fetched from the web server.
Begin using pushState & popState

The NIPAP web UI now uses pushState and popState to update the browser
history when the search string is modified.

Part of #208
Cleared up handling of 'explicit' variable

The variable 'explicit' was sometimes handled as a global variable and
sometimes passed to functions. Cleared up it's behaviour a little; now
it's always handled as a global variable but can be set by passign an
argument to the performPrefixSearch function.

This code needs refactoring, badly...
Differentiate between pageload and popstate

Google Chrome and Firefox differs in how the history API handles a page
load. Firefox emits a 'pageload' event, while Chrome emits both a
'pageload' and a 'popstate' event. Added code from
http://stackoverflow.com/questions/6421769/popstate-on-pages-load-in-chrome
which tries to differentiate between the popstate event which is emitted
by Chrome when first entering a page to the one which is emitted when
the user uses the back/forward buttons of the browser.

So far it catches most occurencies, but not all, which results in the
page being loaded twice and a first access to the prefix list page
performs an explicit search with an empty search string.

Part of #208
Removed performPrefixSearch from pageshow handler

...as it'll be called when the VRF list has been returned. Also modified
when the setSearchPrefixURI is called from performPrefixSearch.

This seems to strike the correct balance on when to update URI and when
to perform search. Apparantly using the back button to jump from another
page to the prefix list does not trigger the popstate event in Firefox,
but now that seems to be handled correctly...

Fixes #208 \o/
Merge branch 'plist_state'
Change .nipaprc skeleton file default_vrf

Set default_vrf to 'all' instead of 'none' so that searches will return
results from all VRFs. This is in line with what the web UI does per
default.
Merge branch 'master' of github.com:SpriteLink/NIPAP
Improve tab completion for args with escapes

Tab completion was broken for certain commands where the object
contained escaped whitespace, quotes or similar. For example, the
command 'nipap pool resize foo\ bar remove <tab>' would not work.
helper-nipap needs to read the name of the pool so that it can complete
the member prefixes based on that information. bash however, passed the
literal 'foo\ bar' instead of 'foo bar' which broke helper-nipap.

That is fixed by mangling everything through shlex before to remove
escaped whitespace, quotes and similar.

Kind of part of #375.