Added new get method

If you pass another argument to get() you can set a default value.
Added checks for setDefaultValue()

If the values given to setDefaultValue is unknown it will throw a
IllegalArgumentException