Stable tabs order on needs page

Make the need page tab list predictable and stable. This is achieved by storing the tab config in an array instead of hash. This change also adds test coverage.