Implement growing and shrinking pools

.. using 2 methods

Using 2 methods we know beforehand if the user wants to remove a prefix
from a pool, and incase he/she wants completion, *he can opt for not specifying a range.
Commit plajjan's gist

https://gist.github.com/plajjan/91c310603c4339e2879e
Whitespace: Add some empty lines above methods
Use global pool variable in resize methods
remove example code
Use correct variable in error message

Part of #146
Fix bug in helper-nipap

This makes helper-nipap a bit more tolerant to errors in that it will
find the first argument called 'nipap' and continue processing all
arguments after that first argument. This means that helper-nipap can be
called like "helper-nipap nipap address" or "helper-nipap address" and
it will still produce the same output.

Fixes #375.
Fix tab completion for pool resize remove

Removed some testing code which was there to find an issue with bash's
character escaping.
Add a very small test for the CLI

This adds a super small test suite for the CLI. Essentially to verify my
fix for #373 but we can build upon it later to test more stuff.

Part of #373
Activate new test suite in Travis-CI config

Part of #373.
Rename order to order_id

This was missed when we renamed order - we simply forgot to update the
CLI! Thanks to dosomder for pointing this out!

Fixes #373.
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
Improve tab completion offset stuff

This improves the robustness of helper-nipap when it is trying to find
the correct offset to start parsing arguments at.

Part of #375.
Update NEWS file and version to 0.21
Update changelogs for v0.21.0
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'