Changes 4 java agents

### Apologies in advance

This is a fairly heavy PR, but these changes all have to come in together.  I figured it's better than a bunch of separate PRs with dependencies.

### Synopsis of major changes

1. Removed some confusing type aliases in the `org.enmas.pomdp` package, did some related refactoring.  Added a new top-level `Action` class as a result.

    What was previously:

        actionsFunction = (agentType) => Set('send, 'wait)

    now becomes:

        actionsFunction = (agentType) => Set(Action("send"), Action("wait"))

1. Added a new `org.enmas.pomdp.State.Implicits` object (and implicit conversions therein) to allow for a more natural State literal syntax within POMDP definitions.

    What was previously:

        import org.enmas.pomdp.State
        
        val s = State("a" -> 123) + ("b" -> 55.32) + ("c" -> false)

    is now more neatly expressed:

        import org.enmas.pomdp.State
        import State.Implicits._
        
        val s = State("a" -> 123, "b" -> 55.32, "c" -> false)

    and the resulting container is still fully type-safe for subsequent access calls.

1. Updated the JavaBroadcastAgent and added a Java SARSA implementation in the included examples.

1. Recompiled all example code, making fixes where necessary for compatibility with the API changes.

1. Improved the specification tests for State.

1. Bumped version number to `0.11.0-SNAPSHOT`.