first handle all integer properties, then all double ones

this is required in situations where double grid properties depend on
the values of integer (i.e, *NUM) ones which appear later in the
deck. Example:

```
PROPS

SWU
* /

REGIONS

SATNUM
*2 /
```

the default value of the SWU keyword depends on the value of the
SATNUM property which only gets defined later in the deck. an
alternative to the approach of this patch would be to process the
grid properties of the REGIONS section before the others. I'm a bit
indifferent which approach is better...
Capture and provide completion direction

This is needed for clients to act intelligently in the presence of
horizontal completions (in the context of deviated wells).
Merge pull request #295 from bska/completion-direction

Capture and Provide Completion Direction
GroupTree::prinTree() takes std::ostream argument
Removed debug output clutter
Default: Updates to ParserItem::equal()

 1. The boolean flag m_defaultSet() is included in the actual
    comparison.

 2. The compare functions is implemented as a functions template.
Default: Implemented ParserxxxItem::scan() with template
Default: Changed defaultApplied bool to enum

We now have an enum which can keep track of three possible states for
the data in a deck item:

  VALID   : A valid value has been set
  DEFAULT : The default value has been applied
  NOT_SET : The value has not been set.

The intention is to throw if/when a DeckItem with status == NOT_SET is
accessed.
Default: Changed default handling in ParserItem

This is the first of several large commits changing several aspects of
the handling of defaults. The overall main purpose of these changes is
to protect against using non sensible values in the case the values have
not been sensibly specified in the deck. The changes in this commit
include:

 1. The "default default" values to be used when an item without an
    explicit default are defaulted are removed completely.

 2. If a ParserItem is queried for a default value when no default has
    been assigned it will raise an exception.
Default: Updates to the scan routine.
Default: defaultApplied -> setInDeck()

The data values in a deck item can be in three different states, given
by the DeckValue enum in DeckItem.hpp. The three values are:

  SET_IN_DECK : The value has been set explictly in the deck.
  DEFAULT     : The value was not present in the input deck, but a default
                value has been supplied in the configuration and that value
                has been set.
  NOT_SET     : No value has been set for this item; it was not explicitly
                set in the deck and also not included in the configuration.

If you ask for DeckItem->value which is in state NOT_SET you will get an
exception. The method setInDeck() can be used to check if a value has
been set explicitly in the deck; the method defaultApplied() will check
if a default value has been applied.

Observe that the system for handling defaults is not really well suited
for multi valued data items, as it is only a scalar state variable. In
the case of multi valued data items both defaultApplied() and
setInDeck() might return true.
Default: DeckItem will throw if you ask for missing data
Default: Using setInDeck() instead of relying on size == 1
Default: Changed size_type: ALL -> SINGLE
Default: Explicitly added default == 0 for box
Default: Split options keyword to have 197 items
Default: Removed invalid default value.
Default: Changes for default applied.
Default: Explicitly set default values in config
Default: Added method hasValue()