Initial monitor implementation
Merge branch 'issue261' of github.com:akorosmezey/LINC-Switch into akorosmezey-issue261

Conflicts:
	apps/linc_us5/src/linc_us5.erl
	scripts/of_controller_v5.erl
Update for removal of length field
Don't use application:ensure_all_started for now

This was added in R16B02, but we still want compatibility with R15.
Change assertMatch to assertEqual

The expression we check for is just a term, not a guard expression, so
we get better error messages by using assertEqual (it includes exactly
what it was expecting).
Update unit tests for packet-in reason changes

The linc_us5_actions module no longer sets the packet_in_reason field;
the caller needs to do that.  Remove the unit test that checks for
reason 'action' (now called 'apply_action') since it no longer applies,
and change 'no_match' to its new name 'table_miss'.

Update unit test for linc_us5_instructions to expect the 'apply_action'
packet-in reason.
Don't use application:get_env/3

This function was introduced in R16B, but we still need to support R15.
Shut down switch after port unit tests
Update routing unit tests for packet-in reason changes

'no_match' is now 'table_miss'.
Define HI_IMPORTANCE if not already defined

HI_IMPORTANCE is defined starting from R15B02.  Define it
conditionally, so the flow monitor test works on earlier releases as
well.
Define LOW_IMPORTANCE if not already defined

Just like HI_IMPORTANCE, LOW_IMPORTANCE was introduced in R15B02.